从块添加CSS
问题描述:
我正在构建一个自定义的magento模块,我尝试将一个自定义CSS文件添加到我的块。我写道:从块添加CSS
<?php
class Wise_InteractiveSlider_Block_Slider extends Mage_Core_Block_Template
{
protected function _prepareLayout()
{
$this->getLayout()->getBlock('head')->addCss('css/mycompany/mymodule/stylesheet.css');
return parent::_prepareLayout();
}
}
,但它不工作,我的CSS文件没有加载,任何想法? 谢谢。
答
我的另一种解决方案是在我的XML布局补充一点:
<default>
<reference name="head">
<action method="addCss"><stylesheet>css/interactiveslider.css</stylesheet></action>
</reference>
</default>
谢谢您的帮助
答
所有CSS &图片通常位于“skin
”文件夹中。它应该是: -
"skin" folder
-> Package Name (like "base" or "default")
-> Theme Name (like "modern" or "mycompany")
-> "css" folder
-> "mymodule" folder
-> "stylesheet.css" file
所以我想你一直跟着上述基本结构,这被认为是最佳实践之一。
回到你的问题,我想你已经在模块的布局文件“layout.xml
”中提到了正确的块类。所以上面的代码应该是,根据上述文件夹结构: -
<?php
class Wise_InteractiveSlider_Block_Slider extends Mage_Core_Block_Template
{
protected function _prepareLayout()
{
$this->getLayout()->getBlock('head')->addCss('css/mymodule/stylesheet.css');
return parent::_prepareLayout();
}
}
最后,请确保你已经在正确的文件夹上传你的CSS文件“stylesheet.css
”。
希望它有帮助。
+0
我用它,但它不适用于我的情况。我在答案下给出了我的解决方案。 – Sebastien
答
您只能使用_prepareLayout()方法,如果该块布局XML定义。如果您通过{{块类型...方法在CMS页面中内嵌块,块的渲染时间已经准备好了布局
您的CSS的链接元素是否会添加到页面中你的块被加载?如果不是,它会缩小问题范围。 –