当前位置: 首页 > news >正文

Minify压缩和削减CSS和JS

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. 如何写一个Jquerynbsp;的Plugin插件
  2. 使用CSSnbsp;3创建不规则图形
  3. 4人卖睡衣年赚7000万!绝对…
  4. 我所理解的技术领导力
  5. 问问题的艺术
  6. 程序员发展十分重要的12条日常习惯
  7. 暗时间
  8. 说说程序员与博客
  9. 自由职业者:如何找到你的第…
  10. 要怎样努力,才能成为很厉害…
  11. 人造超强大脑:取代人类的计…
  12. 网站,越简单越好
  13. Git工作流指南:集中式工作…
  14. 对代码命名的一点思考和理解
  15. 10个最“优秀”的代码注释
  16. bearychat的java client
  17. Java多态
  18. java正则表式的使用
  19. JS专题之继承
  20. LintCode 31. partitionArray 数组划分
  21. Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  22. vue2.0一起在懵逼的海洋里越陷越深(四)
  23. Web标准制定过程
  24. 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  25. 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  26. 关于字符编码你应该知道的事情
  27. 技术发展面试
  28. 浅析微信支付:申请退款、退款回调接口、查询退款
  29. 使用docker-compose进行多节点部署
  30. 一些css基础学习笔记
  31. 【干货分享】dos命令大全
  32. 阿里云重庆大学大数据训练营落地分享
  33. ​ArcGIS Pro 如何批量删除字段
  34. # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  35. #14vue3生成表单并跳转到外部地址的方式
  36. #Linux(Source Insight安装及工程建立)
  37. #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  38. (C语言)深入理解指针2之野指针与传值与传址与assert断言
  39. (pojstep1.1.2)2654(直叙式模拟)
  40. (Python) SOAP Web Service (HTTP POST)
  41. (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  42. (安卓)跳转应用市场APP详情页的方式
  43. (分布式缓存)Redis哨兵
  44. (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  45. (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  46. (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  47. .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  48. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  49. @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  50. @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  51. [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  52. [04] Android逐帧动画(一)
  53. [AI]文心一言爆火的同时,ChatGPT带来了这么多的开源项目你了解吗
  54. [Android] Android ActivityManager
  55. [C++]二叉搜索树