【问题标题】:In IIS7, gzipped files do not stay that way在 IIS7 中,gzip 压缩的文件不会保持这种状态
【发布时间】:2011-01-13 07:29:38
【问题描述】:

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

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

但是,文件不会“保持”gzip 格式。

这是我的用例:

  1. 请求 test.css 文件。它没有经过 gzip 压缩。
  2. 在几秒钟内再次请求。它压缩了。
  3. 等待 5 分钟。
  4. 再次请求 test.css 文件。它没有经过 gzip 压缩。

这没有意义——如果原始文件没有更改,是否应该在所有后续请求中交付静态文件的 gzip 压缩版本?

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

【问题讨论】:

    标签: iis iis-7 gzip content-encoding


    【解决方案1】:

    根据这篇文章:

    Changes to compression in IIS7Kanwaljeet Singla

    在 IIS7 中,内容根据点击频率进行压缩,可以这样配置:

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

    也许您没有达到这些阈值?

    【讨论】:

    • 这可能是相关的,但是为什么 gzip 压缩的文件会在 5 分钟后消失?
    • frankadelic:我在我的网络配置中设置了相同的设置。但 gzip 在 2 或 3 次请求后被禁用。
    【解决方案2】:

    根据您需要优化网站性能的程度,您可能希望改用Combres

    最大的优点是它只会压缩和压缩你的 javascript 文件,但它也将所有文件合二为一,所以你的所有 javascript 文件只有一个 http 请求。此外,它还利用了客户端缓存,以便仅在必要时才下载文件。此外,它也对 CSS 文件执行所有这些操作。

    它很容易设置,因此与其尝试解决此问题,不如花时间购买 Combres。

    【讨论】:

    • 可以在不使用 语法的情况下在 ASPX 页面中使用 Combres 吗?对于我的解决方案,我有 CompilationMode="Never" 的页面,因此这些标签对我不起作用。
    • 不,这行不通。在这种情况下,我可能会自己将所有资源压缩/压缩/打包到一个文件中并静态链接。
    • Combres 看起来很酷……也许未来的版本会支持 Expression Builder 语法。
    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-02-03
      • 1970-01-01
      • 2010-10-21
      • 2012-09-19
      • 2011-02-08
      • 2012-06-24
      • 2014-07-19
      • 2018-02-01
      • 1970-01-01
      相关资源
      最近更新 更多