IIS启用GZIP压缩js、css无效的原因及解决方法
2013-11-18 06:41
811 查看
IIS启用GZIP压缩之后,原以为可以压缩所有文件了,包括html、CSS、JS、图片这些文件,但是当我检查的时候,发现并不是这样的,压缩的只有html文件,而CSS、JS并没有压缩
在卡卡网的网站速度诊断里的检测结果:
![](http://files.jb51.net/file_images/article/201311/201311172328494.jpg)
html网页已经成功启用了GZip压缩
![](http://files.jb51.net/file_images/article/201311/201311172328495.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等文件已经成功启用IIS GZip了。
在卡卡网的网站速度诊断里的检测结果:
![](http://files.jb51.net/file_images/article/201311/201311172328494.jpg)
html网页已经成功启用了GZip压缩
![](http://files.jb51.net/file_images/article/201311/201311172328495.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等文件已经成功启用IIS GZip了。
![](http://files.jb51.net/file_images/article/201311/201311172328496.jpg)
相关文章推荐
- IIS启用GZIP压缩js、css无效的原因及解决方法
- IIS7.5打开GZip压缩,同时启用GZip压缩JS/CSS文件的设置方法[bubuko.com]
- IIS7下js文件启用Gzip后却不压缩的解决方法
- IIS7下js文件启用Gzip后却不压缩的解决方法
- IIS启用GZip压缩JS/CSS文件的设置方法
- Nginx启用Gzip压缩js无效的原因
- IIS 7 启用 gzip 静态压缩 压缩js和css文件
- IIS启用GZip压缩JS/CSS等静态文件
- IIS启用Gzip压缩造成OpenFlashChart不能正常显示问题及解决方法
- IIS启用Gzip压缩造成OpenFlashChart不能正常显示问题及解决方法
- ASP.NET中母版页引用外部js或css文件无效,提示对象未定义解决方法
- php ci框架中加载css和js文件失败的原因及解决方法
- 礼拜三log~CSS控制文本不换行+省略号 & li宽度无效的解决方法 & 在js中获取后台变量
- IIS开启Gzip失败的原因之一:冲突 附解决方法
- php使用gzip压缩传输js和css文件的方法
- Windows2003服务器IIS启用Gzip压缩的设置方法
- php ci框架中载入css和js文件失败的原因及解决方法
- Windows2003服务器IIS启用Gzip压缩的设置方法
- php ci框架中加载css和js文件失败的原因及解决方法
- php ci框架中载入css和js文件失败的原因及解决方法