在 IIS 8 和 Windows 8 中设置 gzip

Posted

技术标签:

【中文标题】在 IIS 8 和 Windows 8 中设置 gzip【英文标题】:Set up gzip in IIS 8 and Windows 8 【发布时间】:2013-05-06 03:08:36 【问题描述】:

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

http://localhost/MyWesite

在 IIS 管理器“压缩”中启用了动态内容压缩和静态内容压缩。还禁用了压缩的文件大小限制,因此所有 js 文件大小都被考虑用于压缩(仍然没有发生 gzip 压缩)

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

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

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

在 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>

这样做后,我重新启动了 iis,以防万一。在加载网页时,没有 js 文件或 html 文档被 gzip 压缩。

【问题讨论】:

【参考方案1】:

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

我发现您需要转到服务器管理器并确保您已在 Web 服务器 => Web 服务器 => 性能下设置了动态内容压缩功能。

【讨论】:

已验证这可以在“服务器:Microsoft-IIS/8.0”(Server 2012)上对 .js 文件进行 gzip 压缩。 这会启用 动态 压缩,这将在 每个 请求时重新压缩您的 JS。

以上是关于在 IIS 8 和 Windows 8 中设置 gzip的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 windows powershell 命令在 IIS 网站中设置 ID 属性

MyEclipse中设置项目编码方式

黄聪:wordpress在IIS8中设置默认编码(windows2012服务器)

PHP中设置时区方法

使用 indy 10.5.8 在 Delphi 2010 中设置 KeepAlive 超时

在 laravel 8 中设置单元测试环境