本文实例讲述了Yii安装EClientScript插件扩展实现css,js文件代码压缩合并加载功能。分享给大家供大家参考,具体如下:
扩展插件下载地址,解压后复制到/protected/vendor/
https://github.com/muayyad-alsadi/yii-EClientScript
main配置文件配置插件,components里面增加
1
2
3
4
5
6
7
8
9
10
|
//js,css代码压缩,合并 'clientScript' => array ( 'class' => 'application.vendor.yii-EClientScript.EClientScript' , 'combineScriptFiles' => TRUE, // By default this is set to true, set this to true if you'd like to combine the script files 'combineCssFiles' => TRUE, // By default this is set to true, set this to true if you'd like to combine the css files 'optimizeScriptFiles' => !YII_DEBUG, // @since: 1.1 'optimizeCssFiles' => !YII_DEBUG, // @since: 1.1 'optimizeInlineScript' => false, // @since: 1.6, This may case response slower 'optimizeInlineCss' => false, // @since: 1.6, This may case response slower ), |
工具类Unit.php放于/protected/vendor/components,类中定义加载方法
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/** * 注册JS 文件 */ public function jsFile( $file , $position =CClientScript::POS_HEAD, $media = array ()){ $cs =Yii::app()->getClientScript(); $cs ->registerScriptFile( $file , $position , $media ); } /** *注册CSS文件 */ public function cssFile( $file , $media = '' ){ Yii::app()->getClientScript()->registerCssFile( $file , $media ); } |
模板调用css文件,js文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?php //注册CSS文件, Unit::cssFile( '/css/home/base.css' ); //result to:<link rel="stylesheet" type="text/css" href="/css/home/base.css" /> //IE6下加载CSS文件 Unit::cssFile( '/css/form.css' , 'lte IE 6' ); //result to:<!--[if lte IE 6]><link rel="stylesheet" type="text/css" href="/css/form.css" /><![endif]--> //注册JS文件, Unit::jsFile( '/js/jquery.lazyload.js' ); //result to:<script src="/js/jquery.lazyload.js"> //IE9下加载JS文件 Unit::jsFile( '/js/common.js' , CClientScript::POS_HEAD, array ( 'media' => 'lt IE 9' )); //result to:<--[if lt IE 9]><script src="/js/common.js"><![endif]--> ?> |
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。