IIS中的静态压缩不适用于html,js文件

时间:2011-04-01 15:24:01

标签: asp.net asp.net-mvc compression iis-7.5

我正在尝试配置IIS 7.5以压缩静态htm和js文件。有谁知道它为什么不适合我?这是我的网站web.config:

    <httpCompression>          
        <dynamicTypes>
            <add mimeType="text/*" enabled="true" />
            <add mimeType="message/*" enabled="true" />
            <add mimeType="application/x-javascript" 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="*/*" enabled="false" />
        </staticTypes>
    </httpCompression>
    <urlCompression doStaticCompression="true" doDynamicCompression="false" />

当我将doDynamicCompression设置为true时,压缩开始工作。但我无法使用此选项,因为它在我的托管中被禁用。

谢谢。

3 个答案:

答案 0 :(得分:3)

是什么让你认为压缩不起作用?检查事件视图日志。静态压缩模块有时会抛出错误,说正在使用的目录无效(主要是因为它需要写权限)。

仔细检查Fiddler或其他HTTP调试工具,确保客户端正在发送GZIP / Deflate的“Accept-Encoding”。

答案 1 :(得分:2)

Enabling Http caching and compression in IIS 7 for asp.net websites - Anil Kasalanati

这个怎么样?检查您的applicationHost.config文件。

答案 2 :(得分:2)

我从dynamicTypes中删除了mimeType =“application / x-javascript”,但是将其保留在staticTypes中。这让我可以关闭dynamicCompression但仍然压缩了javascript。

我已经阅读了一些帖子,这些帖子表明,当你在动态和静态中都有相同的mimeType时,动态中的值会获胜。当dynamicCompression关闭但在dynamicTypes中匹配时,javascript被视为动态,因此关闭。

这并不能解释为什么CSS有效,因为mimeType =“text / ”在两个地方都有。当涉及到CSS或任何text / 时,IIS必须更好地确定动态内容与静态内容。