2013-07-22 38 views
7

我在Yii中編寫代碼。防止在Yii中加載特定的CSS文件

我已經註冊了main.css的文件在我的main.php佈局文件,像這樣:

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

現在,這個劇本正在的所有頁面註冊。但是,假設我不希望該腳本在特定頁面上註冊。

我知道,使用:

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

將刪除所有的CSS文件,但是我想只有很少的CSS文件是未註冊。

有沒有辦法做到這一點?

回答

9

您可以在您的特定視圖中使用scriptMap property of CClientScript,並通過false獲取您不想渲染的特定腳本/ css文件的密鑰。從文檔:

數組鍵是腳本文件名(沒有目錄部分),數組值是相應的URL。如果數組值爲false,則不會呈現相應的腳本文件。

例如,比方說的意見/網站/網頁/ about.php

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

禁用與registerCssFile註冊的main.css列入。

scriptMap也可用於控制js腳本文件的呈現。

+2

非常感謝你!這正是我正在尋找的。 –

1

我會建議之一:

使用單獨的佈局像main_no-css.php

添加條件頁面註冊腳本(例如,如果控制器= xxx和行動= YYY!)之前,但這種會導致每隔一頁檢查一次條件。

我肯定會去一個單獨的佈局。