IIS启用GZIP压缩css、js无效的原因及解决方法

[ 2014-01-18 09:35:13 | 作者: admin ]
字号: | |
IIS启用GZIP压缩之后,原以为可以压缩所有文件了,包括html、CSS、JS、图片这些文件,但是当我检查的时候,发现并不是这样的,压缩的只有html文件,而CSS、JS并没有压缩。

            在卡卡网的网站速度诊断里的检测结果:
attachments/201401/18_093646_201307061419148013.jpg

html网页已经成功启用了GZip压缩

attachments/201401/18_093725_201307061420317422.jpg

css文件未成功启用GZip压缩

            后来研究发现,IIS启用GZip时默认压缩的只有html网页,如果需要压缩css、js等文件,还需要另外简单配置一个文件。

            打开C:\WINDOWS\system32\inetsrv\MetaBase.xml这个文件,然后查找“IIsCompressionScheme”,会发现有三段,后面那个不用管,只设置前面两个即可。其中,"/LM/W3SVC/Filters/Compression/gzip"用于设置gzip压缩,"/LM/W3SVC/Filters/Compression/deflate"用于设置deflate压缩。

            如需压缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为“TRUE”,并在HcFileExtensions的属性中加入需要压缩的静态文件:css、js等;

            如需压缩动态文件,则将HcDoDynamicCompression设置为“TRUE”,并在HcScriptFileExtensions属性中加入需要压缩的动态文件:aspx、php等。

            另外,HcDynamicCompressionLevel属性和HcOnDemandCompLevel属性一般都推荐设置为9, 具有最佳性价比。

            参考如下各参数设置:
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
     HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
     HcCreateFlags="0"
     HcDoDynamicCompression="TRUE"
     HcDoOnDemandCompression="TRUE"
     HcDoStaticCompression="TRUE"
     HcDynamicCompressionLevel="9"
     HcFileExtensions="htm
                     html
                     txt
                     css
                     js
                     xml"
     HcOnDemandCompLevel="9"
     HcPriority="1"
     HcScriptFileExtensions="asp
                     aspx
                     dll
                     exe"
   >
</IIsCompressionScheme>
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
     HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
     HcCreateFlags="1"
     HcDoDynamicCompression="TRUE"
     HcDoOnDemandCompression="TRUE"
     HcDoStaticCompression="TRUE"
     HcDynamicCompressionLevel="9"
     HcFileExtensions="htm
                     html
                     txt
                     css
                     js
                     xml"
     HcOnDemandCompLevel="9"
     HcPriority="1"
     HcScriptFileExtensions="asp
                     aspx
                     dll
                     exe"
   >
</IIsCompressionScheme>

        设置完毕后,重新启动IIS,再检测时发现css、js等文件已经成功启用GZip了。
attachments/201401/18_093827_201307061452503288.jpg
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2177

这篇日志没有评论。

此日志不可发表评论。