开启GZip能将文件压缩,减少服务器负担,加速页面下载,是WordPress博客优化中的重要一步。

本文将简述开启GZip的方法。

另外,有些人(比如我)会遇到JS文件无法压缩的问题,本文将简介解决这个问题的过程。

1,在WordPress根目录的.htaccess文件里增加以下代码即可开启GZip:

php_value output_handler ob_gzhandler

此方法来自http://blog.licess.org/wordpress-27-gzip/,可用 http://www.gidnetwork.com/tools/gzip-test.php 查看效果

试验结果,用上述网址查看确实显示压缩了,但Google Webmaster Tools里显示还是没压缩。


2,另一个方法,在.htaccess文件里增加以下代码:

<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-httpd-php application/javascript
</ifmodule>

来自http://fairyfish.net/2008/04/07/gzip/

经试验,这样确实压缩了许多文件(包括HTML、 CCS文件等),但是JavaScript文件没压缩。


3,根据http://www.electrictoolbox.com/compress-files-apache-mod-deflate/

JS文件没压缩,是因为各个服务器设定的MIME type不一样。有的主机是application/x-javascript,有的是application/javascript,有的是text/x-js,等等。要根据服务器的设定改动第二条里列出的代码。

查看MIME type的方式:SSH登录到主机,输入下述命令:

lynx -head -dump http://code.jquery.com/jquery-1.4.2.min.js

但是,我无论改成什么,还是无法压缩js文件。


4,http://community.mybb.com/post-297660.html说可能有bug,再加入下面这段就可以压缩JS:

<FilesMatch "\\.(js|css|html|htm|php|xml)$">
SetOutputFilter DEFLATE
</FilesMatch>

可是这招对我还是无效。


5,看了http://www.tipstrs.com/tip/14001/mod_deflate-not-compressing-Javascript-and-CSS-files,终于明白了,JS文件之所以没压缩,是因为它们被缓存了!

关掉缓存,强制刷新了几次,终于压缩上了。

教训:在开启GZip压缩之前,先关闭服务器端的缓存,等压缩开了之后再开启缓存。


6,查看GZip压缩的效果,推荐用Firefox的Page Speed扩展http://code.google.com/intl/zh-CN/speed/page-speed/download.html,目前它集成在Firefox著名插件Firebug里。

这个扩展非常好用,除了GZip之外,它还能全面地诊断出页面有那些可以优化、加速的地方,按照它的提示一条条做,就能把你的博客优化得很好。

目前我的博客还有很多大红叉,等我有时间了,再来一一解决。 :)

Page Speed