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目录,使用: 

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

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

  1. return array(
  2. 'js' => array('//js/Class.js', '//js/email.js')
  3. );
 
以上预指定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的相对目录: 
  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. );
 
未来过期HTTP头 
Minify可以发送未来(一年)过期HTTP头。要启用该功能,您必须添加一个数字到URIs(例如/min/?g=js&1234 or /min/f=file.js&1234),每当源文件修改时改变该数字。如果你使用SVN/CVS,你可以考虑使用修订版号作为该数字。

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

  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>";
 

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

注:对于该模式,注释风格的字符串正则表达式可能会导致问题。

 
 

把min目录上传根目录,根目录打开http://example.com/min/

Note: Please set $min_cachePath in /min/config.php to improve performance.

设置/min/config.php文件  ,$min_cachePath 有3个选择。

//$min_cachePath = ‘c://WINDOWS//Temp’;
//$min_cachePath = ‘/tmp’;
//$min_cachePath = preg_replace(‘/^//d+;/’, ”, session_save_path());

选择第2个,去除//  .设置tmp属性777

在显示的界面中加入你想合并压缩的 js/css 路径,点击 ‘Update’ 之后会为你生成一个 url,如:http://localhost/min/b=googletesting/js& f=mootools.js,iAction.js,iAjax.js,global.js

css和JS分别合并,2个地址。如果需要组合的文件很多,url 就会变得很长,Minify 支持 group,可以将这些文件分组,这样 url 中只需指定 g=group名字 就可以了。

安装完毕后删除min/builder/index.php  文件。防止其他人登陆!后期如需编辑再次上传!

最新文章

  1. Android中使用Notification实现宽视图通知栏(Notification示例二)
  2. 阿里巴巴笔试整理系列 Session2 中级篇
  3. 北理工c语言期末考试
  4. Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]
  5. 为什么用服务不用线程-Android
  6. 【转】获取android设备 id
  7. XTU OJ 1210 Happy Number (暴力+打表)
  8. shell下 使用心得
  9. 【m从翻译os文章】写日志禁令Sqlnet.log和Listener.log
  10. Java实现 Base64、MD5、MAC、HMAC加密(转)
  11. Java经典23创意模式设计模式(两)
  12. VM虚拟机安装centos,同网段,局域网能访问
  13. JDBC 基础
  14. java 字符常量池
  15. 如何使用 tf object detection
  16. collections标准库
  17. OpenGL的一些名词
  18. VUE路由携带参数的三种方式
  19. mvc 学前必知
  20. 一个kubeadm.config文件--定义了token,扩展了默认端口,外部ETCD集群,自定义docker仓库,基于ipvs的kubeproxy

热门文章

  1. WebService 序列化和反序列化
  2. 输出前k大的数
  3. LOJ#2244. 「NOI2014」起床困难综合症
  4. Array拼接字符串
  5. 深入代码详谈irqbalance【转】
  6. idea 快速生成代码的快捷键
  7. ActiveMQ 使用spring模板 发布消息过程分析
  8. 基于WPF系统框架设计(9)-多值绑定之IMultiValueConverter
  9. An error occurred uploading to the iTunes Store - Please upgrade Java
  10. 【React Native开发】React Native移植原生Android项目(4)