IIS 上的 Gzip 压缩 - 无法正常工作
Posted
技术标签:
【中文标题】IIS 上的 Gzip 压缩 - 无法正常工作【英文标题】:Gzip compression on IIS - Can't get it to work 【发布时间】:2018-10-11 15:54:01 【问题描述】:我有一个现有的 IIS 应用程序,我正在尝试让 GZIP 服务器端压缩工作。该应用程序在 EPIServer CMS 上运行(我不太熟悉) - 作为第一步,我认为这可能与 CMS 有关...
我决定创建一个新的 IIS 应用程序,这次使用 Umbraco(我非常熟悉的另一个 CMS) - 我创建了一个包含一些 CSS 文件和图像的基本页面,
Content-Encoding: gzip
标题。
这是我尝试并检查过的。
-
在本地工作,我正在运行 windows 10. 和 IIS 10
我已在 Internet 信息服务 > Windows 功能中的性能功能下启用了动态内容压缩和静态内容压缩
对于在 IIS 中本地设置的网站,我已确保压缩部分已勾选启用动态和静态复选框。
在我的 web-config 文件中,我添加了这一行
<urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="false" />
当 Webconfig 有这一行时,我会检查浏览器中的标题:
请求标头
Accept: text/css,*/*;q=0.1
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Host: umbracotest.site
Proxy-Connection: keep-alive
Referer: http://umbracotest.site/
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/66.0.3359.117 Safari/537.36
响应标题
Accept-Ranges: bytes
Content-Type: text/css
Date: Tue, 01 May 2018 15:09:02 GMT
ETag: "03739d0e978d31:0"
Last-Modified: Tue, 19 Dec 2017 16:52:54 GMT
Transfer-Encoding: chunked
Vary: Accept-Encoding
如果我稍微更改该 webconfig 行 - dynamicCompressionBeforeCache="false" 为 true - 那么我只会在浏览器中看到一大堆符号 - 这意味着什么吗?
如果我在 webconfig 中再添加几行,如下所示:
<system.webServer>
<httpCompression>
<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="image/jpeg" enabled="true" />
<add mimeType="image/png" enabled="true" />
<add mimeType="image/svg" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
<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="image/jpeg" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"
dynamicCompressionLevel="8" />
</httpCompression>
<urlCompression doDynamicCompression="true" doStaticCompression="true"
dynamicCompressionBeforeCache="false" />
标题仍然相同。
- C:\inetpub\temp\IIS 临时压缩文件\MYAPPPOOL-NAME
这是一个 ASP.net MVC 应用程序 有什么想法吗?
【问题讨论】:
您是否尝试清除缓存? (Ctrl + F5) 是的......试过......那个。即将为 GZIP 做一个 hello world 风格的教程,也许我错过了什么。 【参考方案1】:所以在我的头在墙上敲了大约 8 个小时后,我终于让它工作了!
在检查了所有内容并阅读了我能找到的关于该主题的所有帖子后,我发现了一个对类似问题的评论,该评论表明这可能与我的防病毒软件有关。我在企业环境中工作,我无权在本地计算机上禁用它。所以我将代码部署到我们的登台服务器............它工作正常。
因此,如果其他人遇到此问题,请尝试禁用您的防病毒软件,看看是否有什么不同,它对我有用。
【讨论】:
以上是关于IIS 上的 Gzip 压缩 - 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
IIS Web 服务器上的 Youtube 数据 API V3 PHP 无法正常工作