gpt4 book ai didi

asp.net - 即使在 applicationHost.config 中允许,gzip 压缩也不起作用

转载 作者:行者123 更新时间:2023-12-02 18:38:07 25 4
gpt4 key购买 nike

我想为运行在 ASP.NET4.5 和 IIS7.5 上的网站启用 gzip 压缩,但无法对其进行压缩。

我使用的是共享主机,因此无法直接在 IIS 中进行设置。

applicationHost.config

我将其从拒绝更改为允许(我在这里读到我不应该更改allowDefinition设置:How do you change the allowDefinition section attribute using appcmd in IIS 7?)

<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Allow" />

我网站的 web.config

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.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 服务器管理器中看到安装了静态内容压缩,但没有安装动态内容压缩。

然后,当我转到 IIS 访问我的站点并使用模块压缩时,我现在看到 启用动态内容压缩 已启用(即使显然未安装),但呈灰色显示,并且选中了静态内容压缩。

enter image description here

尽管如此:即使启用了静态和动态内容压缩,我也没有看到使用 Fiddler 进行压缩。

Fiddler 中未启用解码按钮。我还检查了http://www.whatsmyip.org/http-compression-test/http://www.gidnetwork.com/tools/gzip-test.php

但无论我做什么,当我检查 Fiddler 时,我都没有看到 gzip 压缩: enter image description here

我已经检查了这些帖子:

http://blog.arvixe.com/how-to-enable-gzip-on-iis7/

Enable IIS7 gzip

最佳答案

IIS 上的压缩有点不稳定,因为它不会立即进行。 IIS 不会在内容被频繁点击之前对其进行压缩,因此,内容可能会出现未压缩的情况,而实际上内容在被点击几次后最终会被压缩。

此外,请确保列出的 mime 类型与您从代码传回的内容类型完全匹配。

例如 JavaScript:

<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/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-working-consistently

关于asp.net - 即使在 applicationHost.config 中允许,gzip 压缩也不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21157050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com