在IIS7中,压缩文件不能保持压缩状态

7

我已经配置了IIS7以压缩静态内容。

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

然而,这些文件并不会一直保持gzip格式。
以下是我的使用情况:
1. 请求test.css文件。它没有被gzip压缩。 2. 在几秒钟内再次请求。它已经被gzip压缩了。 3. 等待5分钟。 4. 再次请求test.css文件。它没有被gzip压缩。
这没有意义——如果原始文件没有更改,静态文件的gzip版本不应该在所有后续请求中被传递吗?
注意:我正在使用Firefox和Firebug通过检查Content-Encoding头来验证gzip内容。
3个回答

9
根据这篇文章:

IIS7中的压缩变化,作者:Kanwaljeet Singla

在IIS7中,内容的压缩取决于其命中频率,可以像这样进行配置:
<system.webServer>
  <serverRuntime enabled="true"
    frequentHitThreshold="5"
    frequentHitTimePeriod="00:00:20" />
</system.webServer>

也许您还没有达到这些门槛?

这可能有关联,但为什么经过5分钟后gzipped文件会消失呢? - frankadelic
frankadelic:我已经在我的web config中设置了相同的内容。但是在2或3个请求之后,gzip被禁用了。 - Chirag Khatsuriya

1

根据您网站性能优化的需求程度,您可能想使用Combres

它的最大优点是不仅可以压缩和gzip您的JavaScript文件,还可以将所有文件合并为一个文件,因此所有JavaScript文件只需要一个http请求。此外,它还利用客户端缓存,只有在必要时才下载文件。同时,它也可以对CSS文件进行相同的操作。

设置非常简单,所以与其试图修复问题,您的时间可能更好地花在获取Combres上。


Combres能否在ASPX页面中不使用<%= %>语法来使用?对于我的解决方案,我有一些CompilationMode="Never"的页面,所以这些标记对我没有用。 - frankadelic
不,这样做不行。在这种情况下,我可能会选择自己将所有资源压缩/打包成一个文件,并进行静态链接。 - Adrian Grigore
Combres看起来很酷...也许将来的版本会支持Expression Builder语法。 - frankadelic

-1
我建议您关注另一款软件——Helicon Ape http://www.helicontech.com/ape。它免费支持3个网站,并包含压缩/缓存解决方案,可以顺畅地运行。只需在一个配置字符串中启用gzip和缓存即可:
SetEnvIfNoCase mime text/.* gzip=9 cache-enable=mem

上面的规则告诉Ape以最高级别压缩text/* MIME类型,并将它们缓存在内存中。试一试吧。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接