【问题标题】:Enable gzip compression启用 gzip 压缩
【发布时间】:2013-12-29 11:53:29
【问题描述】:

我的网站在 Apache 2 上运行,modGzip 和 deflate 已启用并正常工作!

我在我的 htaccces 文件中添加了以下代码,但是如果我在 gzip 压缩测试中检查我的页面。没有压缩..

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
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>

我搜索了很多并尝试了其他 mod 或 deflate 代码,但它们都不起作用..我该怎么做才能启用 gzip 压缩?

非常感谢!

【问题讨论】:

    标签: performance apache compression gzip


    【解决方案1】:

    对于 Apache

    您需要将以下行添加到您的 .htaccess 文件中:

    <IfModule mod_deflate.c>
      # Compress HTML, CSS, JavaScript, Text, XML and fonts
      AddOutputFilterByType DEFLATE application/javascript
      AddOutputFilterByType DEFLATE application/rss+xml
      AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
      AddOutputFilterByType DEFLATE application/x-font
      AddOutputFilterByType DEFLATE application/x-font-opentype
      AddOutputFilterByType DEFLATE application/x-font-otf
      AddOutputFilterByType DEFLATE application/x-font-truetype
      AddOutputFilterByType DEFLATE application/x-font-ttf
      AddOutputFilterByType DEFLATE application/x-javascript
      AddOutputFilterByType DEFLATE application/xhtml+xml
      AddOutputFilterByType DEFLATE application/xml
      AddOutputFilterByType DEFLATE font/opentype
      AddOutputFilterByType DEFLATE font/otf
      AddOutputFilterByType DEFLATE font/ttf
      AddOutputFilterByType DEFLATE image/svg+xml
      AddOutputFilterByType DEFLATE image/x-icon
      AddOutputFilterByType DEFLATE text/css
      AddOutputFilterByType DEFLATE text/html
      AddOutputFilterByType DEFLATE text/javascript
      AddOutputFilterByType DEFLATE text/plain
      AddOutputFilterByType DEFLATE text/xml
    
      # Remove browser bugs (only needed for really old browsers)
      BrowserMatch ^Mozilla/4 gzip-only-text/html
      BrowserMatch ^Mozilla/4\.0[678] no-gzip
      BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
      Header append Vary User-Agent
    <IfModule>
    

    保存 .htaccess 文件后,测试您的网站以确保它已正确压缩。

    参考:http://websitespeedoptimizations.com/OptimizeGzipCompressionPost.aspx

    【讨论】:

      【解决方案2】:
      <IfModule mod_deflate.c>
      SetOutputFilter DEFLATE
      AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml text/x-js text/js 
      </IfModule>
      

      应该这样做。您需要清除浏览器缓存、刷新并在 Google PageSpeed 或 YSlow 中重新测试,以确保您获得了一些速度。

      (您可能需要添加一些自己的 mime 类型)

      编辑:如果这有助于自定义/使其正常工作,这里是关于压缩的 Apache 文档。 http://httpd.apache.org/docs/2.2/mod/mod_deflate.html

      编辑 2:我也会检查这个答案 gzip working but YSlow indicates it's not

      【讨论】:

      • Gzip 未启用。我检查了 checkgzipcompression.com 和谷歌页面速度测试。
      • 你有可以分享的链接吗?
      • 我阅读了该页面并将 AddOutputFilterByType DEFLATE text/html text/plain text/xml 添加到我的 htaccess 文件中。人!!我在 gziptest.com 上查看它说 gzip 已启用!所有其他 gzip 测试网页都说不,不是!和谷歌说仍然启用 gzip .. 我猜它不工作..
      • 当我在 Firefox 中使用 PageSpeed 时,有时需要清除缓存、退出 Firefox、重新打开和刷新多次才能获得积极的反馈。我会试试看。
      • 我一小时前添加的,没有任何变化..为什么会这么复杂:Sthanx mate反正!
      【解决方案3】:

      什么是压缩?

      压缩允许您的网络服务器提供更小的文件大小,从而为您的网站用户加载更快。

      使用 gzip 压缩 HTML 和 CSS 文件通常可以节省大约 50% 到 70% 的文件大小。这意味着加载页面所需的时间更少,并且总体上使用的带宽更少。

      如何启用 Gzip 压缩 通过网络服务器配置启用压缩 不同的网络服务器有不同的指令(解释如下) 以下是启用压缩的最常用方法,包括 .htaccess、Apache、Nginx 和 Litespeed 网络服务器。

      通过 .htaccess 启用压缩

      下面的代码应该添加到您的 .htaccess 文件中……

      <ifModule mod_gzip.c>
      mod_gzip_on Yes
      mod_gzip_dechunk Yes
      mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
      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>
      

      在 Apache 网络服务器上启用压缩

      如果他们不工作,还有另一种可能对你有用的方法。如果上面的代码似乎不起作用,请将其从您的 .htaccess 文件中删除并尝试使用此代码...

      AddOutputFilterByType DEFLATE text/plain
      AddOutputFilterByType DEFLATE text/html
      AddOutputFilterByType DEFLATE text/xml
      AddOutputFilterByType DEFLATE text/css
      AddOutputFilterByType DEFLATE application/xml
      AddOutputFilterByType DEFLATE application/xhtml+xml
      AddOutputFilterByType DEFLATE application/rss+xml
      AddOutputFilterByType DEFLATE application/javascript
      AddOutputFilterByType DEFLATE application/x-javascript
      

      希望一切正常

      【讨论】: