服务端合并和压缩JS和CSS文件(2)

来源:随网之舞 时间:2010-06-11 18:23:00 

Minify

在Google Code上有一个PHP的开源项目叫Minify,它可以合并、精简、Gzip压缩和缓存JavaScript和CSS文件。其文件合并功能就非常类似Combo Handler,只不过URL的语法稍微有点不同。如果Yahoo! CDN安装了Minify,那么上面Rich Text Editor的代码用Minify的默认格式来写就是:






<script src="http://yui.yahooapis.com/min/f=
2.8.0r4/build/yahoo-dom-event/yahoo-dom-event.js,
2.8.0r4/build/container/container_core-min.js,
2.8.0r4/build/menu/menu-min.js,
2.8.0r4/build/element/element-min.js,
2.8.0r4/build/button/button-min.js,
2.8.0r4/build/editor/editor-min.js"></script>

本地使用Minify很简单,只需要Apache + PHP环境就OK了:

安装好Apache + PHP (Windows、Mac)。

下载Minify源码,解压,然后把min文件夹复制到指定的根目录下,比如localhost。这时URL的写法大概是http://localhost/min/f=。..

启用Apache的Mod Rewrite模块,然后在min文件夹下新建.htaccess文件,并添加如下Rewrite规则:






<IfModule mod_rewrite.c>
RewriteEngine on
# You may need RewriteBase on some servers
# 如果做了所有的开启Mod Rewrite的设置依旧无效,请城市尝试启用下面这句
#RewriteBase /min
# rewrite URLs like "/min/f=..." to "/min/?f=..."
RewriteRule ^([bfg]=.*)  index.php?$1 [L,NE]
</IfModule>

如果不启用Mod Rewrite功能,则Minify的URL会类似http://localhost/min/index.php?f=…,这对客户端和中间服务器的缓存不利,而启用了Mod Rewrite之后的URL类似http://localhost/min/f=…,不仅解决前面问题且更短。

4. 配置Minify,即编辑min/config.php文件






$min_enableBuilder = true;
//本地使用时可以通过http://dwn/min/builder/来进行配置,外部使用时请设置为false
//$min_cachePath = 'c:\\WINDOWS\\Temp';
//$min_cachePath = '/tmp';
//$min_cachePath = preg_replace('/^\\d+;/', '', session_save_path());
//选择其一,去掉注释设置临时缓存目录,这样可以减少程序运算提高性能
$min_serveOptions['maxAge'] = 1800;
//设置浏览器缓存的时间,为了提升性能建议这个时间设置尽可能的长,比如315360000
//如果需要在不改变URL的情况下更新静态文件,可以采用类似时间戳的方式,
//如http://localhost/min/f=example/example.css&20100601.css
//建议静态文件采用版本号管理,每次修改都需要升级版本号,这样就无需时间戳了
//如http://localhost/min/f=example/example_1_0_1.css
$min_serveOptions['minApp']['maxFiles'] = 10;
//参数f获取参数的个数,即合并的文件个数,这个数量完全可以增大,比如50,
//当然可能会遇到URL最大值问题,后会有解释
$min_documentRoot = '';
//$min_documentRoot = substr(__FILE__, 0, strlen(__FILE__) - 15);
//$min_documentRoot = $_SERVER['SUBDOMAIN_DOCUMENT_ROOT'];
//当$min_documentRoot为空时,其值就是$_SERVER['DOCUMENT_ROOT'],
//但合并的文件不在$_SERVER['DOCUMENT_ROOT']下,会导致400错误,
//这个时候可以启用第2行或第3行

4. 配置Minify,即编辑min/config.php文件

$min_enableBuilder = true;
//本地使用时可以通过http://dwn/min/builder/来进行配置,外部使用时请设置为false
//$min_cachePath = 'c:\\WINDOWS\\Temp';
//$min_cachePath = '/tmp';
//$min_cachePath = preg_replace('/^\\d+;/', '', session_save_path());
//选择其一,去掉注释设置临时缓存目录,这样可以减少程序运算提高性能
$min_serveOptions['maxAge'] = 1800;
//设置浏览器缓存的时间,为了提升性能建议这个时间设置尽可能的长,比如315360000
//如果需要在不改变URL的情况下更新静态文件,可以采用类似时间戳的方式,
//如http://localhost/min/f=example/example.css&20100601.css
//建议静态文件采用版本号管理,每次修改都需要升级版本号,这样就无需时间戳了
//如http://localhost/min/f=example/example_1_0_1.css
$min_serveOptions['minApp']['maxFiles'] = 10;
//参数f获取参数的个数,即合并的文件个数,这个数量完全可以增大,比如50,
//当然可能会遇到URL最大值问题,后会有解释
$min_documentRoot = '';
//$min_documentRoot = substr(__FILE__, 0, strlen(__FILE__) - 15);
//$min_documentRoot = $_SERVER['SUBDOMAIN_DOCUMENT_ROOT'];
//当$min_documentRoot为空时,其值就是$_SERVER['DOCUMENT_ROOT'],
//但合并的文件不在$_SERVER['DOCUMENT_ROOT']下,会导致400错误,
//这个时候可以启用第2行或第3行

标签:服务器,压缩,CSS,Minify
0
投稿

猜你喜欢

  • 如何真实有效的提高网站的流量

    2007-09-22 11:07:00
  • 选择主机须注意的六点

    2010-03-25 11:17:00
  • 百度K站及关键字等问题看法和疑问

    2007-11-20 13:16:00
  • 新手站长提高网站流量 四个短期快速方法

    2009-03-03 13:00:00
  • 马克斯CMS2.0beta (maxcms)SQL注入漏洞

    2009-02-17 12:58:00
  • 保障远程桌面Web连接安全四项注意

    2009-01-21 16:55:00
  • 学生建站应该注意四个要点

    2009-02-01 12:32:00
  • 让WordPress原生相册支持lightbox效果

    2011-09-22 20:45:13
  • 大型网站的运营指标

    2009-01-07 12:51:00
  • 利用麦咖啡打造超安全的Web站点目录图文教程

    2009-09-20 19:58:00
  • 基于UNIX平台FTP服务器的建立

    2007-08-24 13:35:00
  • adsense修改收款人姓名政策更新

    2008-05-13 12:32:00
  • 关于网站收录的一些思考

    2008-04-07 13:18:00
  • 何时使用tag进行SEO

    2007-11-16 16:16:00
  • 泄露版Chrome OS骗人!只是谷歌浏览器

    2009-10-16 10:47:00
  • 牛年牛现象 2009年企业网站营销九大趋势

    2009-02-04 09:16:00
  • 从Baidu来英文流量案例分析

    2007-11-22 20:45:00
  • 黑客常用攻击方式:DDoS攻击全面剖析

    2009-12-24 14:16:00
  • OpenSuSE国内最大镜像服务器:lizardsource.cn

    2008-09-26 17:20:00
  • 移花接木 让IIS成为WEB共享“通道”(3)

    2007-03-27 10:11:00
  • asp之家 网站运营 m.aspxhome.com