Drupal/使用Gzip
来自站长百科
导航: 上一页 | 首页 | DedeCMS | 帝国CMS | Xoops | SupeSite | PHPCMS | PHP168 | Joomla
Gzip现今已经成为Internet上使用非常普遍的一种数据压缩格式,或者说一种文件格式。HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。
可以期望:一些压缩比率高的内容如html页面,css,javascript等文本文件在服务器端压缩后,传送给客户端(浏览器),并在客户端以极快速度完成解压缩,并交给浏览器渲染页面和解释脚本.
- 合并,缓存
- Drupal6常规的性能设置(Site configuration - Performance)中可以提升大量的性能:
- Caching mode - 选择"Normal (recommended for production sites, no side effects)"
- Page compression - 选择"Enabled"
- Block cache - 选择"Enabled"
- Optimize CSS files - 选择"Enabled"
- Optimize JavaScript files - 选择"Enabled"
至此,页面启用了压缩; css文件和js文件都被合并到了一个文件里面,同时去除了文件中多余内容(空白,换行,制表符等).
- 启用Gzip压缩
- 打开includes/common.inc:找到:file_save_data($data, $csspath .'/'. $filename, FILE_EXISTS_REPLACE);
- 在下面增加一行: file_save_data(gzencode($data,9), $csspath .'/'. $filename . '.gz', FILE_EXISTS_REPLACE);
- 找到: file_save_data($contents, $jspath .'/'. $filename, FILE_EXISTS_REPLACE);
- 在下面增加一行: file_save_data(gzencode($contents,9), $jspath .'/'. $filename .'.gz', FILE_EXISTS_REPLACE);
在"<IfModule mod_rewrite.c>" 前添加
Files *.js.gz> AddEncoding gzip .js ForceType application/x-javascript </Files> <Files *.css.gz> AddEncoding gzip .css ForceType text/css </Files>
在"<IfModule mod_rewrite.c>" 末尾 ("</IfModule>"之前):添加:
RewriteCond %{HTTP:Accept-encoding} gzip RewriteCond %{REQUEST_FILENAME}.gz -f RewriteRule ^(.*)\.css $1.css.gz [L,QSA] RewriteCond %{HTTP:Accept-encoding} gzip RewriteCond %{REQUEST_FILENAME}.gz -f RewriteRule ^(.*)\.js $1.js.gz [L,QSA]
mod_negotiate 可以mod_rewrite。看作者测试表明,压缩比和原来差距很多。值得使用,尤其是廉价的共享主机。
另外,有2个模块也可以实现:http://drupal.org/project/javascript_aggregator | http://drupal.org/project/css_gzip