IIS 7.5 静态内容压缩(不一致)

8
我有以下的web.config文件:
<urlCompression doStaticCompression="true" />
        <httpCompression>
            <dynamicTypes>
                <add mimeType="text/*" enabled="true" />
                <add mimeType="message/*" enabled="true" />
                <add mimeType="application/javascript" enabled="true" />
                <add mimeType="*/*" enabled="false" />
            </dynamicTypes>
            <staticTypes>
                <add mimeType="text/*" enabled="true" />
                <add mimeType="message/*" enabled="true" />
                <add mimeType="application/javascript" enabled="true" />
                <add mimeType="*/*" enabled="false" />
            </staticTypes>
        </httpCompression>

我的计划不允许动态压缩。

问题是,当我请求css或js时,IIS会响应GZIP并有时添加vary:accept-encoding,有时不压缩CSS或JS,我找不到它的模式,这是某种随机的情况。

我总是尝试CTRL F5,即使你访问www.mysite.com,css和js也是随机压缩或不压缩的。

NB:托管在NetworkSolution上。

我的配置或IIS出了什么问题?

谢谢


当我在http://www.whatsmyip.org/http-compression-test/上尝试访问http://cdn.novopath.com/content/css/master.css时,第一次显示未压缩,第二次则显示已压缩! - Sameh
1个回答

17

在经过大量搜索后,我终于找到了如何更加稳定地让我的IIS 7.5工作的压缩方法。

首先,只有在文件被频繁加载时,IIS才会对其进行压缩。这就引出了一个问题:“什么是IIS认为的‘频繁加载’?”嗯,默认情况下是每10秒2次。天啊!

这个设置可以在web.config中更改,但需要首先在applicationHost.config中解锁该部分。以下是命令:

首先解锁该部分:

C:\Windows\System32\inetsrv\appcmd.exe unlock config /section:system.webServer/serverRuntime

Unlocked section "system.webServer/serverRuntime" at configuration path "MACHINE/WEBROOT/APPHOST".

现在完成了,编辑web.config文件即可。

<?xml version="1.0" encoding="UTF-8"?> <configuration>
    <system.webServer>
        <serverRuntime frequentHitThreshold="1" frequentHitTimePeriod="10:00:00" />
        ...
在这种情况下,我设置它在 10 小时的时间段内执行一次文件。您可以根据需要调整值。以下是说明 serverRuntime 元素的文档: http://www.iis.net/configreference/system.webserver/serverruntime 希望这能帮助您正确地启用压缩。

我最近在这里回答了一个问题,其中提供了更详细的解释:https://dev59.com/qW7Xa4cB1Zd3GeqPoEl1#24906331 - ianbeks
这适用于动态内容压缩吗? - TheQult

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