7

我在 Yii 中编码。

我已经在我的 main.php 布局文件中注册了 main.css 文件,如下所示:

Yii::app()->clientScript->registerCssFile($this->assetsBase.'/css/main.css');

现在这个脚本正在所有页面中注册。但是,假设我不希望该脚本在特定页面上注册。

我知道使用:

Yii::app()->clientScript->reset();

将删除所有 CSS 文件,但我只希望取消注册几个 CSS 文件。

有没有办法做到这一点?

4

2 回答 2

9

您可以在特定视图中使用 的scriptMap属性CClientScriptfalse,传递您不想呈现的特定脚本/css 文件的键。从文档:

数组键是脚本文件名(没有目录部分),数组值是相应的 URL。如果数组值为 false,则不会呈现相应的脚本文件。

例如,在说views/site/pages/about.php

Yii::app()->clientScript->scriptMap = array(
    'main.css' => false
);

禁用包含注册的main.cssregisterCssFile

也可scriptMap用于控制 js 脚本文件的渲染。

于 2013-07-22T15:21:35.247 回答
1

我会建议:

为该页面使用单独的布局,例如main_no-css.php

注册脚本之前添加条件(例如,如果控制器!= xxx 和操作!= yyy),但这会导致在每个其他页面上检查条件。

我肯定会选择单独的布局。

于 2013-07-22T15:03:34.070 回答