【问题标题】:gzip working but YSlow indicates it's notgzip 工作,但 YSlow 表明它不是
【发布时间】:2011-08-02 00:04:37
【问题描述】:

我已经习惯了Firebug,尤其是YSlow。我正在研究的一件事是 gzip 压缩。 YSlow 仍然给我的网站一个“F”,表示我的 CSS 和 JavaScript 文件没有被压缩。

但是,如果我对我的网站(例如 http://www.gidnetwork.com/tools/gzip-test.php)运行外部 gzip 测试,它会告诉我 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>

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

【问题讨论】:

  • 抱歉,我的代码示例中的换行符似乎丢失了。非常感谢任何帮助。
  • 看来您在jpg pnggif 上要求gzip,没有意义,zlib 无法改进这些。 (不知道您问题的实际 point。对不起。:)
  • 嗨 sarnold,关于 gzip 是否不适用于我网站上的 css/javascript,或者 YSlow 是否无法识别压缩的任何想法。基本上我正在尝试使用上面的代码压缩我网站上的文件,但是 YSlow 说我的 css 和 javascript 文件在我认为应该压缩时没有被压缩。我相信 css、html、txt、js、php、pl、jpg、png 和 gif 文件应该被压缩,但我认为这不会发生。任何想法
  • @scm8jet,当您使用HEAD 之类的工具检索标头时,标头是什么样的,或者在使用浏览器时使用 Wireshark 查看标头?
  • @sarnold,感谢您回到我身边。我对 HEAD 不熟悉,你有一个 URL 指向我正确的方向吗?谢谢

标签: .htaccess compression firebug gzip yslow


【解决方案1】:

mod_gzip 是 Apache 1 中已过时的部分。x,在 Apache 2 中已被 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>

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

【讨论】:

    【解决方案2】:

    不在代理后面测量?我的工作代理用我的 yslow 结果搞砸了......!

    【讨论】:

      【解决方案3】:

      只需将下一个代码添加到您的 .htaccess 中

      # BEGIN GZIP
      <ifmodule mod_deflate.c>
      AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
      </ifmodule>
      # END GZIP
      

      似乎它让 GTmetrix 和 Yslow 都开心

      别忘了添加

      ob_start("ob_gzhandler");
      

      如果您使用的是 PHP

      ,则在头文件的开头

      【讨论】:

        猜你喜欢
        • 2019-06-11
        • 2010-10-17
        • 1970-01-01
        • 2016-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多