从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/img
,css()
相对于webroot/css
,依此类推。
我想念什么吗?
答案 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'); ?>" />
在其他人提出更好的方法之前,我将继续使用它。