在IIS 8和Windows 8中设置gzip

kum*_*mar 2 iis gzip

我创建了默认的MCV4网站,并在默认网站下的widows 8系统中的本地IIS8中托管.

http://localhost/MyWesite
Run Code Online (Sandbox Code Playgroud)

在IIS管理器"压缩"中启用动态内容压缩和静态内容压缩.还禁用了压缩的文件大小限制,因此所有js文件大小都被认为是压缩(仍然没有发生gzip压缩)

这是唯一的系统级gzip配置吗?

接下来我尝试做网站级别的更改.我还在C:\ Windows\System32\inetsrv\config中编辑了applicationHost.config文件,下面是我做的更改

<section name="httpCompression" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />
Run Code Online (Sandbox Code Playgroud)

在web.config文件中,我添加了以下内容

<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="*/*" 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>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

在这之后我重新启动iis以防万一.在加载网页时,没有js文件或html文档被gziped.

小智 11

可能你已经解决了这个问题,它刚好发生在我身上,我在寻找错误时发现了这一点.我有完全相同的web.config配置(在IIS 7.5的旧网络服务器上完美运行).

我发现您需要转到服务器管理器并确保在Web服务器=> Web服务器=>性能下设置了动态内容压缩功能. 在此输入图像描述

  • 验证这可以在"服务器:Microsoft-IIS/8.0"(Server 2012)上启用.js文件的gzip压缩. (2认同)