我安装了一个插件,它对不同的控制器有自己的布局覆盖。但是,我无法理解修改路径的机制。
在插件控制器中,如果我告诉它使用我的布局
$this->layout = 'default_dashboard';
它位于 app/Views/Layout 并引用 app/webroot/default_images 中的图像。
当我这样做时,所有相对链接都可以正常工作到 default_images,但希望将一些插件模板覆盖用于其他操作。
但是,如果我修改 default.cpt 文件以包含一些图像,例如 default_dashboard.ctp 中使用的徽标。它无法映射到相同的图像位置。例如在 default.ctp 中:
echo $this->Html->image('default_images/logo.png',array('alt' =>
'Logo','width'=>'284','height'=>'82'));
生成 /img/default_images/logo.png 的路径。插件配置为使用 /img 位置,而在这种情况下我想直接指向 /default_images。我可以制作这个../default_images/logo.png,但这不是很干净。
另外我有 js 和 css 也有类似的问题。有人可以解释使用站点范围的 default.ctp 的机制,以便它与继承的插件模板一起使用吗?
从不使用 Html Helper 将链接硬编码到模板中,我看到浏览器的相对路径由于路由而混淆。例如,第一个与指定的根一起工作,第二个则不。
<img src="/default_images/logo.png" alt="works" width='284' height='82'>
<img src="default_images/logo.png" alt="lost" width='284' height='82'>
确保插件布局和非插件布局都能找到 /default_images 的正确路径的最佳方法是什么?