将css样式放入页面cakeHP的页眉部分


put css styles into header section of the page cakePHP

我有一个快速问题。比方说,我在cakeHP中有一个视图文件myView.ctp,在我的视图中有一些javascript(我有它是有原因的)。我知道我可以告诉cake通过使用scriptStart()和scriptEnd()块将我的javascript代码放入页面的标题部分,比如:

<?php $html->scriptStart(array('inline' => false)); ?>
// My script code goes here...
<?php $html->scriptEnd(); ?>

array('inline' => false)实际上是告诉蛋糕把我的脚本放在标题中。现在我的问题是:如何实现css代码的相同功能(不将css代码放入外部文件)?这种技术似乎只适用于javascript代码。

感谢

当我想做同样的事情时,我看到了这篇文章。事实证明,现在(从Cake 2.1开始)有一种稍微更现代的方法可以使用视图块来实现这一点。也就是说:

$styleTag = $this->Html->tag('style', $yourCSS);
// adds your stuff to the "css" block which is injected via "fetch" in
// the head section from the view's layout
$this->append('css', $styleTag);

附言:如果有一个HtmlHelper::tag()等价于样式块,而不仅仅是内容,只是为了干净,那就太好了。哦,好吧。

$css = $this->Html->tag('style', '/* my css */');
$view =& ClassRegistry::getObject('view');
$view->addScript($css);

视图上的addScript()函数将把您的脚本附加到$scripts_for_layout变量

编辑:评论重申了我错过的一些重要内容,所以我修改了答案。