在Windows Server 2012(标准版)上激活IIS 8上的Gzip的问题
我所看到的是,当我通过服务器localhost浏览我的网站时,gzip临时目录(C:\ inetpub \ temp \ IIS临时压缩文件)正在填满。但奇怪的是,我没有看到任何Gzip-ped镀铬。
唯一的标题(在chrome中)是:HTTP / 1.1 304 Not Modified Accept-Ranges:bytes ETag:" 0a354779de8d11:0"服务器:Microsoft-IIS / 8.0 X-Powered-By:ASP.NET日期:星期四,28 Jul 2016 13:41:04 GMT
(即使是yslow说没有激活gzip)
当我删除gzip临时文件夹时,通过“官方”浏览到该网站。网站网址,然后甚至都没有生成。
有谁知道这里发生了什么?
我在web.config中添加了这个
<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="*/*" 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="4" />
</httpCompression>
请参阅此其他主题,其中我激活了更多日志信息Gzip not working, server 2012, IIS 8
我得到的是:
<RenderingInfo Culture="nl-BE">
<Opcode>STATIC_COMPRESSION_NOT_SUCCESS</Opcode>
<Keywords>
<Keyword>Compression</Keyword>
</Keywords>
<freb:Description Data="Reason">NO_MATCHING_SCHEME</freb:Description>
</RenderingInfo>
答案 0 :(得分:0)
您可以尝试将此添加到您的web.config文件中吗?我建议如此,因为它在IIS Windows共享主机上为我工作。它与您的代码类似,但有一些变化......
<system.webServer>
<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/javascript; charset=utf-8" 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/javascript" enabled="true"/>
<add mimeType="application/javascript; charset=utf-8" enabled="true"/>
<add mimeType="application/x-javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
</system.webServer>
我不确定您是否需要添加
<add mimeType="image/jpeg" enabled="true" />
jpeg不是压缩格式吗?如果你愿意,你可以添加它。
[可选]:我在MaxCdn阅读了这篇文章。
Origin服务器应该包括Vary:Accept-Encoding,以及如何:
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="Vary"></remove>
<add name="Vary" value="Accept-Encoding"></add>
</customHeaders>
</httpProtocol>
</system.webServer>
您也可以将此位添加到您的web.config文件中,通过浏览器的开发人员工具本身在请求标头中进行部署和检查。