Yii --EClientScript 扩展,css,js文件代码压缩合并加载

jerry Yii 2015年08月23日 收藏

扩展插件下载地址,解压后复制到/protected/vendor/
    https://github.com/muayyad-alsadi/yii-EClientScript
main配置文件配置插件,components里面增加

//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,类中定义加载方法

/**  
 * 注册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文件

<?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]-->  
?>