yii框架如何把css、js、image发布到assets中
2013-04-24 20:12
183 查看
研究了一下怎么加css、js,网上的好多资料都是在框架根目录下的第一层有css、js文件夹,大家觉得不利于协同开发时各人自扫门前雪的特质,想在各自的module下维护一套,没想到的是,这样的情况下registerCssFile等函数失效了,大概意思是protected下边的东西不允许访问,当然了,我也不太明白为什么,也不确定是否是我哪里没设置对。但是本着解决问题的精神,发现assets是个好东东。我们可以使用如下代码自由加载css等到asset文件夹下,可以选择单个文件、某个文件夹下的所有子文件夹等方式进行加载,而且这种加载方式可以避免重复加载,节省资源。
2. 上面用到的assetmanager是/web/CAssetManager.php中描述的,其中publish函数有如下参数:$path:css等文件的位置,$hashByName是否对在assets文件夹下生成的资源文件夹进行哈希,$level加载方式(单文件、文件夹全加载神马的),$forceCopy是否强制每次都重新加载(个人认为css调试的时候用比较好,否则修改过的css可能因为不重新加载而不能立即生效)。综上所述,很简单的,js、image同理。
3.
$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);
相关文章推荐
- yii框架如何引入css、img、js文件
- 如何将css,js压缩成jar包maven发布后引用!
- JS如何判断分辨率不同,调用不同的CSS,不同的image文件夹
- 处理SSM框架中css、js、image等加载不出来
- Yii当中如何注册jQueryUI的js和CSS
- yii 链接地址的格式以及如何引用外部js,css,img
- YII 如何在当前页面外部加载css,img,js文件
- SSM框架中css、js、image等加载不出来问题
- ionic如何uglify和minify你的js,css,image,png....
- 迷你MVVM框架 avalonjs 0.99发布
- Maven工程中jsp如何引用js、css
- 常用各种语言如html,batch,vbscript,js,c#,java,php,xml,css的注释如何写?
- yii中引入js和css文件
- .net webform 如何在UserControl里链接css和js
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
- Yii 引入js css jquery 执行操作
- 迷你MVVM框架 avalonjs 0.73发布
- Gulp解决发布线上文件(CSS和JS)缓存问题
- MVC 之 解决MVC中使用BundleConfig.RegisterBundles引用Css及js文件发布后的丢失
- WEB-INF下的jsp文件如何访问css和js文件