我在Yii编码。
我在main.php布局文件中注册了main.css文件,如下所示:
Yii::app()->clientScript->registerCssFile($this->assetsBase.'/css/main.css');
现在这个脚本正在所有页面中注册。但是,我不希望该脚本在特定页面上注册。
我知道使用:
Yii::app()->clientScript->reset();
会删除所有CSS文件,但我只想要几个CSS文件取消注册。
有办法吗?
答案 0 :(得分:9)
您可以在特定视图中使用scriptMap
property of CClientScript
,将false
传递给您不想呈现的特定脚本/ css文件的密钥。来自doc:
数组键是脚本文件名(没有目录部分),数组值是相应的URL。如果数组值为false,则不会呈现相应的脚本文件。
例如,在 views / site / pages / about.php 中说:
Yii::app()->clientScript->scriptMap = array(
'main.css' => false
);
禁止在registerCssFile
注册 main.css 。
scriptMap
也可用于控制js脚本文件的呈现。
答案 1 :(得分:1)
我建议:
为该页面使用单独的布局,例如main_no-css.php
或
在注册脚本之前添加条件(如控制器!= xxx和action!= yyy),但这会导致在每个其他页面上检查条件。
我肯定会选择单独的布局。