BlueHost Gzip优化JS和CSS传输
Bluehost是美国一个著名的主机商,以稳定性著称,全球有超过100万个网站托管在那里详细的介绍可以看鱼叔的介绍。我使用Bluehost已经有差不多两个月了,从刚开始购入这款主机起我一直断断续续地对我的博客进行优化,使页面的打开速度能得到提升。Bluehost对页面传输的优化比较怪,html文件默认是进行Gzip进行压缩的,但对CSS和JS文件不进行压缩,自己也不可以通过.htaccess文件让mod_deflate对CSS和JS文件进行压缩。今天我们只需要使用mod_rewrite提供的功能就可以实现全站CSS和JS压缩。
1.使用Minify库进行压缩
Minify是Google Code上的一个开源项目(具体介绍可以看这个页面),作者整合了国外多个专家的研究成果,形成了一个功能强大的库,有很多大型站点也在使用这个库进行压缩。
使用方法
首先下载Minify的最新版本,把压缩包里的min目录上传到站点根目录,然后打开.htaccess编写rewrite rule:
1 2 3 4 5 | <ifmodule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^(.*\.(css|js))$ min/index.php?f=$1&debug=0 [L,NC] </ifmodule> |
2.使用Combine.php进行压缩
Combine.php是一个不知名的国外开发者写的一个小程序,同样可以压缩站点的CSS和JS文件,但与Minify相比Combine.php是超轻量级的,整个文件只有不到5K大小,大家可以点击这里下载。下载后把文件上传到网站根目录,然后编写rewrite rule:
1 2 3 4 5 6 | <ifmodule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^css/(.*\.css) /combine.php?type=css&files=$1 RewriteRule ^javascript/(.*\.js) /combine.php?type=javascript&files=$1 </ifmodule> |
后记
这两个方法大家选其一使用,两个方法都是在服务器对所有CSS和JS先进行整合再传输,效率是比较高的,而且这两个方法也适合其他不能直接通过mod_deflate进行压缩的主机。下面是我优化前后的对比。

使用Gzip压缩前文章页面的JS文件总体积达到100+K之巨。

使用Gzip压缩以后同一个页面的JS总体积已经被压缩到不足40K。虽然效果不及采用mod_deflate好,但我为了减少服务器负载只进行了轻度压缩,两个方法对于没有mod_deflate的主机来说是个折中的方法。
关于Bluehost降低服务器负担的方法可以看胡老板的《BlueHost/HostMonster修改文件上传大小限制和内存不足》或Google其它优化技巧,我要说的是:Bluehost是一款非常耐玩的主机。






计算下压缩率 我看起来直白些 呵呵
胡老板…这个称呼不错
he.net机房的不知道行不行,没去研究
继续折腾吧 2010继续我们写博
我没有试过gzip,有时间要尝试
据说Bluehost是无限流量的
已经用上鸟,感觉很爽,哈哈 ~
@hzlzh
一般大概能压缩60%以上
@万戈
人家的确是老板嘛
@zwwooooo
只要是支持url rewrite的PHP主机就行
@风云春秋博客
嗯,你也加油
@A.shun
无限流量只是个遽头而已,意思就是够你用
@evlos
飙起来吧,哈哈
以前用过一些js.css压缩~~结果生成的php有10几M,把我吓的够呛~~
@老饕
不会吧?做个压缩只需要几句代码的
有个疑问,采用Combine.php压缩方法无效,采用Minify进行压缩就会出现页面链接不到样式的错误,到底该怎么做呢?是Wordpress并且开启了伪静态。
@刀哥
我是用Minify进行压缩的,可能是你的伪静态指向不正确
为什么我的就是不能用
只能用Minify这个
才能压缩 是不?
站长你好,我在测试Minify方法,请问“然后打开.htaccess编写rewrite rule”是把你写出来的6行代码全部复制到.htaccess中吗?我的.htaccess中原来有一些类似的代码,如下:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^(.*\.(css|js))$ min/index.php?f=$1&debug=0 [L,NC]
# END WordPress
# For security reasons, Option all cannot be overridden.
#Options All -Indexes
Options ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch -Indexes
我把RewriteRule ^(.*\.(css|js))$ min/index.php?f=$1&debug=0 [L,NC]单独加进去了。不知道可不可以。
另外这个.htaccess是原来根目录中的,还是指min文件夹中的呢?谢谢。