查看: 11020|回复: 0
打印 上一主题 下一主题

Minify压缩JS和CSS

[复制链接]
跳转到指定楼层
1#
发表于 2010-7-31 17:16:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
Minify把CSS和JS压缩和削减(Minify:去掉空格回车符等),以及把多个CSS,JS文件整合到一个文件里。不要以为你的大带宽没有必要进行这类优化。使用它的理由更重要的是文件合并,而不是压缩,而是文件整合,这样可以减少浏览器端不断发出新的连接请求,就像FTP服务器一样,多个小文件和一个大文件耗时是不一样的。

Minify是用PHP写的,项目地址 http://code.google.com/p/minify/

安 装
   1. 下载最新的Minify然后解压缩到minify目录。
   2. 复制"min"目录到你的DOCUMENT_ROOT.

基本用法
假设你有http://localhost/a.js,http://localhost/b.js两个文件。那么现在,你可以使用http://localhost/min/?f=a.js,b.js,看看浏览器返回结果,是不是minify的两个js文件的内容?

附译min目录下的README.txt

引用

该目录中的文件包含默认Minify设置,旨在简化整合您的网站。Minify将合并削减JavaScript或CSS文件,并进行HTTP压缩和缓存头。

推 荐
建议修改config.php中设置$min_cachePath到一个PHP可写目录。这将提高性能。

GETTING STARTED
最快的开始Minify的方法是使用Minify Builder应用程序的URI
访问您的网站:http://example.com/min/builder/

压缩单个文件
比方说,你要服务于这个文件:
  http://example.com/wp-content/themes/default/default.css
下面是“Minify网址”该文件:
  http://example.com/min/?f=wp-content/themes/default/default.css

换句话说,“f”参数设置为从WEB根路径下的目标文件(不需要路径/)”。由于CSS文件可能包含相对URI,Minify会自动通过重写机制找到它们。

合并多个文件到一个文件下载
用','分隔f参数的每一个文件名。
比如,有如下CSS文件:
  http://example.com/scripts/jquery-1.2.6.js
  http://example.com/scripts/site.js
您可以通过Minify结合起来:
  http://example.com/min/?f=scripts/jquery-1.2.6.js,scripts/site.js

简化基本路径
如果你合并的文件共享同一父目录,你可以使用b参数设置的f参数的基本目录(同样不包括前导或者后缀/字符)。
例如,以下两种写法效果相同:
  http://example.com/min/?f=scripts/jquery-1.2.6.js,scripts/site.js,scripts/home.js
  http://example.com/min/?b=scripts&f=jquery-1.2.6.js,site.js,home.js

在Html中使用MINIFY
在(X)HTML文件,不要忘记将&替换为&

指定允许的目录
默认情况下,Minify不会有任何DOCUMENT_ROOT范围内的*.css/*.js文件。如果你希望限制Minify存取某些目录,在config.php中设置
$min_serveOptions ['minApp'] ['allowDirs']数组。例如:限制到/js和/themes/default目录,使用:

Php代码
1.$min_serveOptions['minApp']['allowDirs'] = array('//js', '//themes/default');  
$min_serveOptions['minApp']['allowDirs'] = array('//js', '//themes/default');


"组":更快的性能和更好的网址
为了获得最佳性能,编辑groupsConfig.php中的预指定文件组,下面是一个例子配置:

Php代码
1.return array(   
2.    'js' => array('//js/Class.js', '//js/email.js')   
3.);  
return array(
    'js' => array('//js/Class.js', '//js/email.js')
);

以上预指定js将结果是合并了如下文件:
  http://example.com/js/Class.js
  http://example.com/js/email.js
现在,您可以如此简化URL:
  http://example.com/min/?g=js
  
组:指定document_root目录以外的文件
在groupsConfig.php阵中,//是指向DOCUMENT_ROOT,但你也可以指定从系统的绝对目录路径或相对于document_root的相对目录:

Php代码
1.return array(   
2.  'js' => array(   
3.    '//js/file.js'            // file within DOC_ROOT   
4.    ,'//../file.js'           // file in parent directory of DOC_ROOT   
5.    ,'C:/Users/Steve/file.js' // file anywhere on filesystem   
6.  )   
7.);  
return array(
  'js' => array(
    '//js/file.js'            // file within DOC_ROOT
    ,'//../file.js'           // file in parent directory of DOC_ROOT
    ,'C:/Users/Steve/file.js' // file anywhere on filesystem
  )
);

未来过期HTTP头
Minify可以发送未来(一年)过期HTTP头。要启用该功能,您必须添加一个数字到URIs(例如/min/?g=js&1234 or /min/f=file.js&1234),每当源文件修改时改变该数字。如果你使用SVN/CVS,你可以考虑使用修订版号作为该数字。

如果使用"组"来合并压缩你的文件,可以使用工具函数Minify_groupUri()来得到一个“版本”的URI。例如:

Php代码
1.<?php   
2.// 之前确保min/lib目录设置到include_path   
3.// add /min/lib to your include_path first!   
4.require $_SERVER['DOCUMENT_ROOT'] . '/min/utils.php';   
5.$jsUri = Minify_groupUri('js');   
6.echo "<script type='text/javascript' src='{$jsUri}'></script>";  
<?php
// 之前确保min/lib目录设置到include_path
// add /min/lib to your include_path first!
require $_SERVER['DOCUMENT_ROOT'] . '/min/utils.php';
$jsUri = Minify_groupUri('js');
echo "<script type='text/javascript' src='{$jsUri}'></script>";


调试模式
在调试模式下,Minify不压缩文件,而是发送合并后的带有行号的文件。要启用该模式,在config.php中设置为$min_allowDebugFlag为true,并增加"&debug=1" 到你的URIs.
例如:/min/?f=script1.js,script2.js&debug=1

注:对于该模式,注释风格的字符串正则表达式可能会导致问题。
更多问题请访问 http://groups.google.com/group/minify
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2025 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表