CakePHP 3.8-如何在视图中访问Webroot的公共路径?

时间:2019-12-09 19:34:05

标签: cakephp cakephp-3.0

从2.3.x迁移到3.8,我无法确定如何访问视图中的Webroot公共路径。以前我可以做这样的事情:

<link rel="stylesheet" type="text/css" href="<?php echo $this->webroot ?>wp-dist/acd76cde.css" />

但是当我在3.8上尝试时,它说:

Error: webrootHelper could not be found.

我尝试了html helper,但是找不到仅提供webroot公共路径的helper方法。例如,image()相对于webroot/imgcss()相对于webroot/css,依此类推。

我想念什么吗?

2 个答案:

答案 0 :(得分:1)

您在正确的轨道上,应该使用HTML帮助程序。

对于CSS:

<?= $this->Html->css('wp-dist/acd76cde.css'); ?>

仅供参考,内部使用的是config/app.php中定义的选项:

$pathPrefix = Configure::read('App.cssBaseUrl');

因此在理论中,如果您手动需要相同的路径,您也可以 从配置中读取它们-但是您应该坚持使用HTML Helper,这正是它是干什么的。

  

从文档中

     

答案 1 :(得分:1)

更新

如@ndm在上面的评论中所述,以下内容对我也适用。

echo $this->Html->css('lightweight_lpbbd374e3', ['pathPrefix' => 'wp-dist/']);

我的原始解决方案,也可以使用

$this->Url->webroot终于为我工作了。因此,我将CSS包括如下:

<link rel="stylesheet" type="text/css" href="<?php echo $this->Url->webroot('wp-dist/lightweight_lpbbd374e3.css'); ?>" />

在其他人提出更好的方法之前,我将继续使用它。