gzip工作,但YSlow表明它不是

scm*_*jet 5 compression .htaccess firebug gzip yslow

我特别习惯了FirebugYSlow.我正在研究的一件事是gzip压缩.YSlow仍然为我的网站提供了一个"F",表示我的CSS和JavaScript文件没有被压缩.

但是,如果我对我的网站运行外部gzip测试(例如http://www.gidnetwork.com/tools/gzip-test.php),它告诉我gzip正在工作并给我节省,尽管我认为这可能只是HTML.

这是我.htaccess文件的相关部分:

<IfModule mod_gzip.c>
    mod_gzip_on       Yes
    mod_gzip_dechunk  Yes
    mod_gzip_item_include file      \.css$
    mod_gzip_item_include file      \.(html?|txt|js|php|pl|jpg|png|gif)$
    mod_gzip_item_include handler   ^cgi-script$
    mod_gzip_item_include mime      ^text/.*
    mod_gzip_item_include mime      ^application/x-javascript.*
    mod_gzip_item_exclude mime      ^image/.*
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
Run Code Online (Sandbox Code Playgroud)

为什么YSlow不同意外部gzip测试?

War*_*ung 2

mod_gzip是 Apache 1.x中已过时的部分,已在 Apache 2.x 中被替换mod_deflate

这个mod_deflate配置让 YSlow 很满意:

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE text/css text/html text/plain text/xml
    DeflateCompressionLevel 9
</IfModule>
Run Code Online (Sandbox Code Playgroud)

有两AddOutputFilterByType行的唯一原因是为了避免水平滚动。