即使允许在applicationHost.config中,gzip压缩也不起作用
我想为IIS7.5上运行ASP.NET4.5的站点启用gzip压缩,但无法压缩。
我在共享主机,所以我不能直接在IIS中设置。
的applicationHost.config
我将其从Deny
更改为Allow
(我在这里读到,我不应该更改allowDefinition
设置:如何在IIS 7中使用appcmd更改allowDefinition部分属性?)
<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Allow" />
我的网站的web.config
<httpCompression directory="%SystemDrive%inetpubtempIIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%system32inetsrvgzip.dll"/>
<dynamicTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="application/x-javascript" enabled="true"/>
<add mimeType="application/javascript; charset=utf-8" 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="application/x-javascript" enabled="true"/>
<add mimeType="application/javascript; charset=utf-8" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</staticTypes>
</httpCompression>
作为上述的替代方案,我也尝试将其添加到我的web.config中:
<configuration>
<system.webServer>
<urlCompression doStaticCompression="true" doDynamicCompression="false" />
</system.webServer>
</configuration>
我在Windows 2008服务器管理器中看到安装了静态内容压缩,但Dynamic不是。
然后,当我去我的站点和模块压缩的IIS,我现在看到, Enable Dynamic content compression
已启用(即使显然未安装),但变灰,并检查静态内容压缩。
尽管如此,尽管启用了静态和动态内容压缩,但我看不到使用Fiddler进行压缩的情况。
Fiddler中没有启用Decode
按钮。 我还检查了http://www.whatsmyip.org/http-compression-test/和http://www.gidnetwork.com/tools/gzip-test.php
但无论我做什么,当我与Fiddler进行检查时,我都看不到gzip压缩:
我已经检查过这些帖子:
http://blog.arvixe.com/how-to-enable-gzip-on-iis7/
启用IIS7 gzip
IIS上的压缩有点不可靠,因为它不会立即执行。 IIS不会压缩内容,直到它被频繁击中,所以它可能会出现内容未被压缩时,它实际上最终会被击中几次后。
此外请确保您列出的MIME类型与您从代码传回的内容类型完全匹配。
例如,对于JavaScript:
<httpCompression directory="%SystemDrive%inetpubtempIIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%system32inetsrvgzip.dll" staticCompressionLevel="9" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="application/javascript; charset=utf-8" enabled="true" />
<add mimeType="application/json" enabled="true" />
<add mimeType="application/json; charset=utf-8" 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>
可能是必需的。
以下是几年前我撰写的一篇博文中的更多信息:http://weblog.west-wind.com/posts/2011/May/05/Builtin-GZipDeflate-Compression-on-IIS-7x
另一个讨论与你的听起来相似的问题(查看评论):http://weblog.west-wind.com/posts/2007/Jun/22/IIS-7-and-JavaScript-Compression-not木材加工洽
链接地址: http://www.djcxy.com/p/18555.html上一篇: gzip compression not working even though allowed in applicationHost.config
下一篇: Is it possible to model jQuery.fn.extend using TypeScript