修改web.config来开启Gzip压缩
IIS 7.0之后引入的一个IIS配置文件,详细内容参考官方链接http://www.iis.net/learn/get-started /planning-your-iis-architecture/introduction-to-applicationhostconfig
该文件的的位置%windir%\system32\inetsrv\config
http压缩的相关配置如下:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" /> <dynamicTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" 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/x-javascript" enabled="true" /> <add mimeType="application/atom+xml" enabled="true" /> <add mimeType="application/xaml+xml" enabled="true" /> <add mimeType="*/*" enabled="false" /> </staticTypes> </httpCompression> <urlCompression doStaticCompression="true" doDynamicCompression="true" /> </system.webServer> </configuration>
<httpCompression>节点用于配置静态压缩和动态压缩,<urlCompression>则用于开关 http压缩。IIS 7.0默认开始静态压缩而关闭动态压缩,IIS 7.5及之后版本则默认开启静态压缩和动态压缩。将urlCompression节点的doStaticCompression和 doDynamicCompression属性设为true即为开启压缩。在设置完成之后,重启IIS,之后去前台测试,发现700KB的js文件压缩到 了300KB,效果还是不错的。
需要注意的是,ApplicationHost.config里面的配置是IIS的全局配置,会影响所有的网站。如果只想为某个网站开启http压 缩,可通过修改ApplicationHost.config下httpCompression配置,将overrideModelDefault属性设 置Allow,允许它在每个网站的web.config里面重新配置(urlCompression默认已经允许在web.config里重新配置)。
<section name="httpCompression" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />