yii框架如何把css、js、image發佈到assets中

  1. 研究了一下怎麼加css、js,網上的好多資料都是在框架根目錄下的第一層有css、js文件夾,大家覺得不利於協同開發時各人自掃門前雪的特質,想在各自的module下維護一套,沒想到的是,這樣的情況下registerCssFile等函數失效了,大概意思是protected下邊的東西不允許訪問,當然了,我也不太明白爲什麼,也不確定是否是我哪裏沒設置對。但是本着解決問題的精神,發現assets是個好東東。我們可以使用如下代碼自由加載css等到asset文件夾下,可以選擇單個文件、某個文件夾下的所有子文件夾等方式進行加載,而且這種加載方式可以避免重複加載,節省資源。
$cs=Yii::app()->clientScript;
$cssDir=Yii::getPathOfAlias("access.css") ;
$published = Yii::app()->assetManager->publish($cssDir);
	$cssFile = $published . "/" . "homemain.css";
	if (!Yii::app()->clientScript->isCssFileRegistered($cssFile)) {
	   Yii::app()->clientScript->registerCssFile($cssFile);
	} ?>
2. 上面用到的assetmanager是/web/CAssetManager.php中描述的,其中publish函數有如下參數:$path:css等文件的位置,$hashByName是否對在assets文件夾下生成的資源文件夾進行哈希,$level加載方式(單文件、文件夾全加載神馬的),$forceCopy是否強制每次都重新加載(個人認爲css調試的時候用比較好,否則修改過的css可能因爲不重新加載而不能立即生效)。綜上所述,很簡單的,js、image同理。
3.  
//在底部加載自定義JS
Yii::app()->clientScript->registerScriptFile("xxx",CClientScript::POS_END); 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章