magento 在全站或者某页面增加外联js或者css的方法
1,在整站末尾增加外联资源
找到当前主题的布局文件cms.xml,在<default></default>添加如下代码:
<reference name="before_body_end"> <!-- add another block of type page/html_head to have all the great functionality to add/remove css and js stuff --> <!-- it is important to set your own template, because the head block has a defined default template page/head.phtml which has all the stuff of the head. Using this will bring a lot of problems --> <block type="page/html_head" name="scripts_in_footer" template="country/scriptscss.phtml"> <!-- add whatever you want as you are used to in the head via the standard magento api --> <action method="addItem"><type>skin_js</type><name>country/country.js</name></action> </block> </reference>
2,在某个页面添加外联资源
找到当前页对应moudel的layout文件,在对应控制器中添加上述代码:
<country_index_index> <reference name="before_body_end"> <!-- add another block of type page/html_head to have all the great functionality to add/remove css and js stuff --> <!-- it is important to set your own template, because the head block has a defined default template page/head.phtml which has all the stuff of the head. Using this will bring a lot of problems --> <block type="page/html_head" name="scripts_in_footer" template="country/scriptscss.phtml"> <!-- add whatever you want as you are used to in the head via the standard magento api --> <action method="addItem"><type>skin_js</type><name>country/country.js</name></action> </block> </reference> </country_index_index>
3,新建template文件scriptscss.phtml,添加如下代码
<?php // and to echo the whole stuff later in the template, you need to add the code, so the added js/Css files are echoed ?> <?php echo $this->getCssJsHtml() ?> <?php echo $this->getChildHtml() ?>
刷新页面,加载完成,主要涉及的是before_body_end块定义加载的位置,使用html_head块里面的方法添加资源到对应的页面上,