Drupal/使用Gzip

来自站长百科
跳转至: 导航、​ 搜索

导航: 上一页 | 首页 | DedeCMS | 帝国CMS | Xoops | SupeSite | PHPCMS | PHP168 | Joomla

Gzip现今已经成为Internet上使用非常普遍的一种数据压缩格式,或者说一种文件格式。HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。

可以期望:一些压缩比率高的内容如html页面,cssjavascript等文本文件在服务器端压缩后,传送给客户端(浏览器),并在客户端以极快速度完成解压缩,并交给浏览器渲染页面和解释脚本.

  • 合并,缓存
    • 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

参考资料[ ]