您的位置:首页 > 编程语言 > PHP开发

yii框架如何把css、js、image发布到assets中

2013-04-24 20:12 183 查看
研究了一下怎么加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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: