在IIS7中,gzip压缩文件不会保持这种状态

时间:2010-02-04 22:42:31

标签: iis iis-7 gzip content-encoding

我已将IIS7配置为gzip静态内容。

http://www.coderjournal.com/2008/04/iis-7-compress-javascript-gzip/

但是,文件不会“停留”gzip。

这是我的用例:

  1. 请求test.css文件。它不是gzip压缩。
  2. 请在几秒钟内再次申请。 gzipped。
  3. 等5分钟。
  4. 再次请求test.css文件。它不是gzip压缩。
  5. 这没有意义 - 如果原始版本没有更改,不应该在所有后续请求中提供静态文件的gzip压缩版本吗?

    注意:我使用Firefox和Firebug通过检查Content-Encoding标头验证gzip压缩内容。

3 个答案:

答案 0 :(得分:9)

根据这篇文章:

  Changes to compression in IIS7

Kanwaljeet Singla

在IIS7中,内容被压缩,具体取决于其命中频率,可以这样配置:

<system.webServer>
  <serverRuntime enabled="true"
    frequentHitThreshold="5"
    frequentHitTimePeriod="00:00:20" />
</system.webServer>

也许你没有达到这些门槛?

答案 1 :(得分:1)

根据您在网站上优化效果的严重程度,您可能希望使用Combres

最大的好处是它只会缩小和压缩你的javascript文件,但它也将所有文件合并为一个,所以你的所有javascript文件只有一个http请求。此外,它还使用客户端缓存,因此只在必要时下载文件。此外,它还为CSS文件执行所有这些操作。

这很容易设置,所以不是试图解决这个问题,而是花在获取Combres上的时间。

答案 2 :(得分:-1)

我建议你注意另一个软件 - Helicon Ape http://www.helicontech.com/ape 它可以免费用于3个网站,包括可以顺利运行的压缩/缓存解决方案。只需在一个配置字符串中,您就可以启用gzip和缓存:

SetEnvIfNoCase mime text/.* gzip=9 cache-enable=mem

上面的规则告诉Ape压缩具有最高级别的text / * mime-types并将它们缓存在内存中。试试吧。