IIS 上的 Gzip 压缩 - 无法正常工作
Gzip compression on IIS - Can't get it to work
我有一个现有的 IIS 应用程序,我正在尝试让 GZIP 服务器端压缩工作。该应用程序在 EPIServer CMS(我不太熟悉)上运行 - 认为这可能与 CMS 有某种关系,作为第一步...
我决定创建一个新的 IIS 应用程序,这次使用 Umbraco(我非常熟悉的另一个 CMS)- 我创建了一个包含一些 CSS 文件和图像的基本页面,
Content-Encoding: gzip
header.
这是我试过并检查过的。
- 在本地工作,我是 运行 windows 10. 和 IIS 10
- 我在 Windows 功能
的 Internet 信息服务 > 性能功能下启用了动态内容压缩和静态内容压缩
- 对于在 IIS 中本地设置的网站,我已确保压缩部分已勾选启用动态和静态复选框。
在我的 web-config 文件中,我添加了这一行
<urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="false" />
当 Webconfig 有这一行时,我在浏览器中检查 headers:
请求HEADERS
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
回应HEADERS
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" />
header还是老样子
- C:\inetpub\temp\IIS 临时压缩 Files\MYAPPPOOL-NAME << 此文件夹已创建但为空。
这是一个 ASP.net MVC 应用程序
有什么想法吗?
所以在用头撞墙大约 8 小时后,我终于让它工作了!
在检查所有内容两次并阅读我能找到的所有 post 主题之后,我看到了对类似问题的评论,该评论表明这可能与我的防病毒软件有关。我在企业环境中工作,我无权在我的本地机器上禁用它。所以我将代码部署到我们的登台服务器............并且它有效。
因此,如果其他人遇到此问题,请尝试禁用您的防病毒软件,看看是否有任何不同,它对我有用。
我有一个现有的 IIS 应用程序,我正在尝试让 GZIP 服务器端压缩工作。该应用程序在 EPIServer CMS(我不太熟悉)上运行 - 认为这可能与 CMS 有某种关系,作为第一步...
我决定创建一个新的 IIS 应用程序,这次使用 Umbraco(我非常熟悉的另一个 CMS)- 我创建了一个包含一些 CSS 文件和图像的基本页面,
Content-Encoding: gzip
header.
这是我试过并检查过的。
- 在本地工作,我是 运行 windows 10. 和 IIS 10
- 我在 Windows 功能 的 Internet 信息服务 > 性能功能下启用了动态内容压缩和静态内容压缩
- 对于在 IIS 中本地设置的网站,我已确保压缩部分已勾选启用动态和静态复选框。
在我的 web-config 文件中,我添加了这一行
<urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="false" />
当 Webconfig 有这一行时,我在浏览器中检查 headers:
请求HEADERS
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
回应HEADERS
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" />
header还是老样子
- C:\inetpub\temp\IIS 临时压缩 Files\MYAPPPOOL-NAME << 此文件夹已创建但为空。
这是一个 ASP.net MVC 应用程序 有什么想法吗?
所以在用头撞墙大约 8 小时后,我终于让它工作了!
在检查所有内容两次并阅读我能找到的所有 post 主题之后,我看到了对类似问题的评论,该评论表明这可能与我的防病毒软件有关。我在企业环境中工作,我无权在我的本地机器上禁用它。所以我将代码部署到我们的登台服务器............并且它有效。
因此,如果其他人遇到此问题,请尝试禁用您的防病毒软件,看看是否有任何不同,它对我有用。