CakePHP - 包含基于特定页面的CSS?

时间:2011-03-28 20:49:50

标签: php cakephp cakephp-1.3

我想要包含一个应该应用于主页的特定css文件,以及整个网站中的6-7个其他页面。

我知道我可以通过PHP做到这一点,获取URL,找到什么页面,链接css等等,但我想知道是否有一种光滑的方式(或任何更好的方式)使用CakePHP来包含正确的css文件。

我意识到我可以链接特定视图中的CSS文件,但是 - 然后它们不会出现在<head>中。有没有办法从视图中链接并将其显示在头部?

我希望我的问题有意义,并且非常感谢任何帮助。

4 个答案:

答案 0 :(得分:19)

  

我意识到我可以链接CSS文件   具体的观点,但是 - 然后他们   不在<head>。有没有   从视图链接并拥有它的方式   出现在头上?

是的,他们会在头脑中。请参阅HTML Helper documentation

  

如果键'inline'设置为false in   $ options参数,链接标签是   添加到$ scripts_for_layout   你可以在里面打印的变量   文件的头标记。

所以,你视图中的这个片段......

$this->Html->css('my-css', null, array('inline' => false));

...会将适当的<link>元素添加到您的<head>

答案 1 :(得分:0)

查看这个小教程:

http://nuts-and-bolts-of-cakephp.com/2008/05/05/css-files-and-scripts_for_layout/

基本上,您可以使用此标准视图属性$ scripts_for_layout根据视图注入CSS文件。希望这是你正在寻找的。我想到了一些其他疯狂的选项,涉及扩展解析,但它可能比手动链接样式表更麻烦。我认为此链接描述了最佳解决方案。

答案 2 :(得分:0)

您也可以使用不同的布局,并在其中包含css:

http://book.cakephp.org/view/1080/Layouts#!/view/1080/Layouts

如果模型的所有视图都具有相同的css或脚本,那么这很方便。

答案 3 :(得分:0)

这不是你问题的答案,但...... 您可以为布局文件编写自己的注入。 $ scripts_for_layout的问题是js和css代码被注入头部。如果编写自己的实现,可以将$ scripts_for_layout var(对于js)放在布局文件的末尾。提示是:分离......