【问题标题】:Confusion about gzip, is it compressed or not?关于 gzip 的困惑,它是否被压缩?
【发布时间】:2014-07-12 19:57:49
【问题描述】:

很抱歉用一个似乎有据可查的问题打扰您,但我尝试过的所有事情都没有完全令人满意。

上周我的公司从托管包切换到托管服务器,我仍在优化它。

现在,Google 的 PageSpeed Insights 告诉我,it is not compressedGTMetrix 也是如此。 GidNetwork 告诉我压缩工作正常。

我已经加了

<IfModule mod_deflate.c>
<FilesMatch "\.(html|php|txt|xml|js|css)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>

到我的.htaccess,(推荐here)正常工作,我更改的其他设置都很好,以及

zlib.output_compression = On

到我的 php.ini。 整个 .htaccess 和 php.ini 可以在jsFiddle 看到。

在 Firefox 和 Chrome 中发送和接收的标头声称正在发生压缩。

我还在我的主目录中创建了一个httpd.conf,因为我的服务器上还没有一个。我应该把文件移到别的地方吗?

我真正想知道的:

Soo...我做错了什么?是压缩的吗?不是吗?如何让谷歌“看到”压缩?

非常感谢您的帮助。

【问题讨论】:

    标签: php apache .htaccess gzip


    【解决方案1】:

    这应该是你需要的功能,它应该会自动生成你需要的标题:

    http://www.php.net/manual/en/function.gzdecode.php

    无论如何,请检查您的 php 版本,因为它仅适用于 php 5.4.0 或更高版本。

    【讨论】:

    • 您好,谢谢您的回答。我可能无法使用它,因为我们使用的是过时的 CMS(我的任务是在我尽可能优化后替换它),但无论如何我将如何使用它?我会用该函数包装整个 html 生成文件吗?非常感谢您的建议。
    • 您可以查看我发布的链接上的示例编号 5,在那里您可以找到一种简单的使用方法。关于您的 CMS,这可能是加快转换速度的时候了 :) 祝您工作顺利!
    【解决方案2】:

    虽然我的浏览器接受 deflate/gzip 编码 (Accept-Encoding: gzip, deflate),但您的服务器不使用压缩数据进行响应:

    HTTP/1.1 200 OK
    Date: Tue, 11 Mar 2014 09:41:45 GMT
    Server: Apache
    Connection: Keep-Alive
    Keep-Alive: timeout=2, max=200
    Etag: "96-100e9-4f4517d791912"
    Expires: Fri, 11 Apr 2014 13:28:25 GMT
    Cache-Control: max-age=2692000, public
    Vary: User-Agent
    

    如果它被压缩,服务器也会发送

    Content-Encoding:   deflate
    

    使用 FireBug 或开发控制台查看标题。它必须是您的 httpd.conf。 你不能简单地在你的主目录中创建这个文件,Apache 会加载它。

    查看/etc/apache*/etc/httpd/* 以获得配置文件。

    【讨论】:

    • 它为主要的 html 文件发送 Content-Encoding:"gzip",虽然不是所有的 js/css 文件...奇怪的是, /etc/httpd 文件夹不存在我的服务器,我确实有 /etc/apache-ssl 和 /apache-dav,但是 -dav 是空的,并且 -ssl 对我来说是读阻塞的......我可以创建directoty /httpd/ 还是一个严重的迹象有什么地方错了,它根本就没有吗?谢谢你的回答。
    • @KjeldSchmidt Google 抱怨 js/css 没有被压缩。我会向您的服务器管理员/提供商询问配置文件的正确位置以及如何包含您自己的。您不能简单地创建一个目录.. 在主 Apache 配置中必须有 Include /etc/httpd/conf.d/* 或其他东西
    【解决方案3】:

    您已启用 gzip 压缩,但尚未将其设置为压缩某些文件类型,例如 javascript 和 css。这就是为什么 Google 的 PageSpeed 试图建议启用压缩。要为这两种类型启用压缩,请使用

    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/javascript
    

    【讨论】:

    • 对,只有 .js 和 .css 文件仍然未压缩,但我的 .htaccess 中已经有了这些行 =/ 挠头
    【解决方案4】:

    描述了here 描述了最终对我有用的压缩 js/css 文件的方法,这些文件由于我还没有完全理解的原因而未压缩。

    在此方法中,javascript 和 css 文件被 php 脚本强制压缩。它还设置了新的“Expire”-Headers,因此如果您想要缓存超过 5 分钟,请更改数字。添加不同的文件比较棘手,但我认为是可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-24
      • 2015-07-14
      • 2013-05-17
      • 2010-09-21
      • 2019-05-17
      • 2020-03-06
      • 2016-03-16
      • 2013-07-27
      相关资源
      最近更新 更多