我试图在 IIS 下支持静态文件的 GZip 压缩(默认情况下应该启用,但没有),但到目前为止还没有工作。这是下面的部分<system.webServer>
Web 应用程序的 web.config 文件内的节点;
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/json" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" />
我用谷歌浏览器试过了。这是请求标头;
接受:text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.3
接受编码:gzip、deflate、sdch
接受语言:en-US,en;q=0.8
缓存控制:无缓存
连接:保持活动状态
主机:我的网站 url
编译指示:无缓存
用户代理:Mozilla/5.0 (Windows NT 6.0) AppleWebKit/534.30 (KHTML,
像 Gecko)Chrome/12.0.742.122 Safari/534.30
这些是响应标头;
接受范围:字节
内容长度:232651
内容类型:应用程序/x-javascript
日期:2011 年 8 月 4 日星期四 08:58:19 GMT
ETag:"a69135734a50cc1:0"
最后修改时间:2011 年 8 月 1 日星期一 12:56:37 GMT
服务器:微软-IIS/7.5
X-Powered-By:ASP.NET
我检查 applicationHost.config 文件并发现一些如下所示的节点;
----
<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
----
<section name="urlCompression" overrideModeDefault="Allow" />
----
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
----
<urlCompression />
我在这里缺少什么?
经过大量搜索,我终于找到了在 IIS 7.5 上进行压缩的方法。
首先,除非文件加载得足够频繁,否则 IIS 不会压缩文件。这就提出了一个问题:“IIS 经常考虑什么?”嗯,默认值是每 10 秒 2 次。哎呀!
可以在 web.config 中更改此设置,但需要首先在 applicationHost.config 中解锁该部分。以下是命令:
首先解锁该部分:
C:\Windows\System32\inetsrv\appcmd.exe 解锁配置
/节:system.webServer/serverRuntime
解锁配置路径“MACHINE/WEBROOT/APPHOST”处的“system.webServer/serverRuntime”部分。
现在已完成,编辑 web.config 文件并添加 serverRuntime 元素:
...
在本例中,我将其设置为每 10 小时命中一次文件。您可以根据需要调整这些值。这是解释 serverRuntime 元素的文档:
http://www.iis.net/configreference/system.webserver/serverruntime
我希望这也有助于您的压缩工作。
注意:您还可以在 applicationHost.config 文件中设置 serverRuntime 元素,但我选择在 web.config 中更改它,因为我们有许多服务器和具有不同站点的服务器场,并且我更容易控制它从这个粒度级别。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)