yiicod/clientscript

Yii 框架的 JS/CSS 压缩工具

维护者

详细信息

bitbucket.org/yiicod/clientscript

安装: 399

依赖者: 0

建议者: 0

安全: 0

类型:yii-extension

2.0.0 2016-02-29 10:29 UTC

This package is auto-updated.

Last update: 2024-08-29 04:17:18 UTC


README

Yii 1.4.x 或更高版本

描述(这是从 EClientScript 分支出来的,修复了 CssMin 中的问题)

EClientScript(Yii 的 CClientScript 扩展)

这是为 Yii 框架优化的客户端脚本管理器,可以压缩和合并 CSS/JS 文件。

它将自动检测文件内容的变化(基于修改时间)并相应地生成唯一的文件名。

这将通过合并多个资源文件为一个(或多个)文件来减少对资源文件的 HTTP 调用。

源代码托管在 bitbucket 上

https://bitbucket.org/yiicod/clientscript.git

CSS 文件

CSS 文件根据其媒体属性进行合并,文件中具有相对路径的背景图像也可以正确显示。

脚本文件

脚本文件根据其位置进行合并,如果你使用了 'CClientScript::POS_HEAD',那么页面上的所有脚本文件将合并为一个文件。

如果你使用了 'CClientScript::POS_HEAD' 和 'CClientScript::POS_END',例如,那么每个页面将有两个文件,因为这些资源位于不同的位置。

文件优化

CssMin 用于优化合并的 CSS 文件。你可以设置组件的 'optmizeCssFiles' 属性以启用此功能。 JSMinPlus 用于优化合并的脚本文件。你可以设置组件的 'optmizeScriptFiles' 属性以启用此功能。

用法

  1. 使用此扩展与向应用程序配置中的 components 数组添加以下代码一样简单
  'clientScript' => array(
    'class' => 'application.vendors.yii-EClientScript.EClientScript',
    'combineScriptFiles' => !YII_DEBUG, // By default this is set to true, set this to true if you'd like to combine the script files
    'combineCssFiles' => !YII_DEBUG, // 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
  ),

然后你可以像往常一样使用常规的 'registerScriptFile' 和 'registerCssFile' 方法,文件将自动合并或优化。

  1. 用于为 IE 浏览器条件加载 JS/CSS 文件,你只需指定媒体属性。
$cs = Yii::app()->clientScript;

// result to: <!--[if lt IE 9]><script src="/js/html5.js"></script><![endif]-->
$cs->registerScriptFile('/js/html5.js', CClientScript::POS_HEAD, array('media' => 'lt IE 9'));

// result to: <!--[if lte IE 6]><link rel="stylesheet" type="text/css" href="bootstrap/css/ie.css" /><![endif]-->
$cs->registerCssFile('/css/ie.css', 'lte IE 6');

已知问题

当某些资源文件不能合并且它们严格依赖于加载顺序时,可能会出现问题。