服务端合并和压缩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行
猜你喜欢
- 做为一个新站,没IP,没PR,没排名,新站做几天最多也就被几大搜索引擎收录,不过没什么排名。就像我昨天做的网站: * 站。这时候你应该怎么
- 我是一名专职的设计师,工作之余,经常会去一些个威客网承接的任务,来充实一下自己的,我去的目的也并不是单单只为钱,也为了去消磨一点时间,可是最
- 尽管美国经济出现危机,但是网站开发领域还是很繁荣的,因为不论是现在或者将来,网络必定是人们日常生活中不可缺少的组成部分。NETTUTS上列出
- 今天我们一起来学习Godaddy主机如何为masked domain添加一个标题及原标签。所谓域名转发即URL转发,是通过服务器的特殊技术设
- 昨天一个朋友给我传了几个博客大全的一些程序源码,想在本机调试看下好不好的,格局那些等好看不的。熟料当我http://127.0.0.1根本就
- 第十七届万维网大会(WWW2008)结束招待晚宴在北京人民大会堂举行,昨晚,来自全球的互联网界精英悉数出席。百度总裁李彦宏在晚宴中致辞,并在
- 我先说下我的最初建设方法:华恒教育—一级栏目,华恒简介、高中留学等导航的设置都是二级栏目。(其实这种办法我走了不少弯路)我这样的办法是对每个
- 近日南方都市报的一则题为《网店变形记:握手线下士多》的关于广州“聚宝盆”B2M运营模式的报道,引起电
- 现在很多用户都是自动获取ip,而不是固定不变的,现在作个简单的程序,在他每次上网后,把他的ip自动发给我指定的email。实现很简单(当然,
- 3月2日消息,网易昨日开始对网站部业务进行调整,除了原网易执行副总编方三文离职外,网易还调整了其他人事分工和新业务架构。根据内部人士透露,原
- MWC09的新闻你关注吗?自从iphone出来后,手机世界的变化可谓日新月异.移动商务再也不是以前的发发邮件这么简单了.手机已经完全不是以前
- 此漏洞已帮其修复,并知会当事人SQL 注入漏洞危害巨大,但 SQL 注入也经常的被发现,少不小心过滤不完全就有可能让整个应用陷入困境。无意间
- 关于链接的价值相对于其他链接策略,这是一个可以辩论的话题。并且毫无疑问,一个双向链接,到目前为止,价值是相互的。不过,如果做的正确,对等链接
- Godaddy-Linux主机帐户上的默认文档的有限顺序取决于你购买的主机帐户的类型,例如,Standard, ColdFusion, 或J
- 到http://www.phpwind.com/download.php下载对应编码的安装包,里面有个upload,用里面的文件覆盖你原来的
- 如果你已经是google adsense内容发布商,登录帐户后台后可以看到每个月初由google adsense发送的优化建议(如“2007
- 架设sendmail服务器 这次我们来学习Linux系统中的Sendmail服务器的配置。(邮件服务器的IP192.168.1.2 主机域名
- 今天在检查博客附件的时候发现有以前上传的一个注册表导入脚本reg文件丢了,重新上传的时候居然报错了。仔细看了才发现是之前安装的Waterma
- 核心提示:网站的存在就已经不是一个个人行为了,因为你面向的是一个广泛的群体,而非只是针对性的自己一个人,因此,网站的运营过程中,就必经有人加
- 白帽SEO工作准确的讲白帽SEO是一些遵守互联网道德准则,遵守搜索引擎约束规范的搜索引擎优化工作者。白帽SEO是相对黑帽SEO而言的。其特点