第一步,建立压缩所需的php文件
复制如下代码,保存到要压缩的css文件同目录,命名为css.php,名称可根据你自己喜好命名,只要是php文件即可.
06 |
if(extension_loaded('zlib')){ |
07 |
ob_start('ob_gzhandler'); |
09 |
header ("content-type: text/css; charset: utf-8"); |
10 |
header ("cache-control: must-revalidate"); |
11 |
$offset = 60 * 60 * 240; |
12 |
$expire = "expires: " . gmdate ("D, d M Y H:i:s", time() + $offset) . " GMT"; |
15 |
function compress($buffer) { |
16 |
$buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '',$buffer); |
20 |
if(extension_loaded("zlib")){ |
第二步,前台调用
以本站为例. 原CSS调用为:
1 |
<link rel="stylesheet" media="screen" href="http://mrthink.net/wp-content/themes/zsofa/style.css"> |
gzip压缩后调用方式为:
1 |
<link rel="stylesheet" media="screen" href="http://mrthink.net/wp-content/themes/zsofa/css.php?v=100415"> |
需要说明的是,如果你以前有多个css调用,那么,gzip后只须调用一个.当然,前提是你的压缩php文件中包含了所有要调用的css样式表.
第三步,压缩完成,此时用我文章开始提到的YSlow插件再分析一下你的网站,对比一下两次的分值,相信一定会有惊喜.
最后,要提醒一点的时,gzip的php文件中设置了缓存时间,如果你改过css文件,传上去后不是即时生效的,生效时间为上述gzip代码中$offset后面设置的值.解决方法其实也很简单,修改css后,同时修改一下样式调用路径中…/css.php?v=100415 100415的值(这个值可以随意取)即可.