2013-07-22 8 views
7

私はYiiでコーディングしています。特定のCSSファイルがYiiに読み込まれるのを防ぐ

私はそうのような私のmain.phpレイアウトファイルにあるmain.cssファイルを登録している:

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

は今、このスクリプトは、すべてのページに登録されています。しかし、私はそのスクリプトを特定のページに登録したくないと言います。

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

は、しかし、私はほんの数CSSファイルが未登録になりたい、すべてのCSSファイルを削除します:

は、私が使用していることを知っています。

これを行う方法はありますか?

答えて

9

scriptMap property of CClientScriptを特定のビューで使用し、レンダリングしたくない特定のスクリプト/ CSSファイルのキーにfalseを渡すことができます。 doc:

配列キーはスクリプトファイル名(ディレクトリ部分なし)であり、配列値は対応するURLです。配列の値がfalseの場合、対応するスクリプトファイルはレンダリングされません。 registerCssFileに登録あるmain.cssの混入を無効にする

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

ビュー/ about.phpサイト/ページ/発言に例えば

、。

scriptMapは、jsスクリプトファイルのレンダリングを制御するためにも使用できます。

+2

ありがとうございます!これはまさに私が探していたものでした。 –

1

私はお勧めのいずれかになります。

を(のようなコントローラの場合= xxxは、アクション= YYY!!)スクリプトを登録する前に条件を追加するmain_no-css.php
または
のように、そのページの別のレイアウトを使用しますが、この他のすべてのページで条件がチェックされます。

私は間違いなく別のレイアウトに行きます。

関連する問題