在ASP.NET中设置gzip压缩

23

有没有一种方法可以在web.config级别设置gzip压缩,或者我只能在IIS管理控制台中进行设置?


可能是如何在ASP.NET中实现GZip压缩?的重复问题。 - Chris Moschini
2个回答

37

试试这个:我的网站速度提高了将近400%。第一次尝试就奏效。

使用web.config启用GZip压缩

<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="*/*" enabled="false"/>
    </dynamicTypes>
    <staticTypes>
      <add mimeType="text/*" enabled="true"/>
      <add mimeType="message/*" enabled="true"/>
      <add mimeType="application/javascript" enabled="true"/>
      <add mimeType="*/*" enabled="false"/>
    </staticTypes>
  </httpCompression>
  <urlCompression doStaticCompression="true" doDynamicCompression="true"/>
</system.webServer>

2
尝试了几次,但如果这些设置在web.config中设置,压缩就不起作用。如果在applicationhost.config中设置,则一切正常。我不喜欢在applicationhost.config中设置设置,但至少它是有效的。 - Karel Kral
我的共享托管提供商使用 Plesk 管理我的权限,但这个解决方案对我也失败了。我已经简要地解释了我在 http://stackoverflow.com/a/14509007/1624169 中编写的更长的解决方案。 - Chawathe Vipul S
微软同意。http://www.iis.net/configreference/system.webserver/httpcompression 但是,当您安装gzip压缩时,这似乎已经默认设置好了,因此这一步应该是不必要的,并且它只会缩小js等内容,而不是ASP.Net页面的HTML。 - Chris Moschini
如果JavaScript没有被压缩,请尝试使用MIME类型“application/x-javascript”。 - Christian Davén
请问您能告诉我 web.config 的位置吗?我在我的服务器上找到了多个文件。 - Tassisto
显示剩余2条评论

7
是的,你可以通过web.config启用压缩,如下面的文章所示-但它可能取决于服务器允许站点的权限。
您应该注意,动态压缩(需要在发送到客户端之前进行处理的任何内容)可能会增加服务器负载,因为它必须对每个请求进行压缩。 IIS7压缩 编辑:请注意,这适用于IIS7(正如您标记的那样)。

这个更改将gzip js和css,但不会压缩ASP.Net的实际HTML输出,出于某种原因。你可能认为启用动态内容压缩就可以解决问题,但在我的测试中它并没有起作用。 - Chris Moschini

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接