IIS启用GZIP压缩js、css无效的原因及解决方法
在卡卡网的网站速度诊断里的检测结果:

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

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了。

您可能对如下文章也感兴趣
相关文章
Windows DNS服务器曝"蠕虫级"漏洞,已存在长达17年
这篇文章主要介绍了Windows DNS服务器曝"蠕虫级"漏洞,已存在长达17年,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-07-07
Windows Server 2016+Sql Server 2016搭建Alw
AlwaysOn是SqlServer实现高可用的解决方案之一,需要部署在Windows故障转移集群(WSFC)上,Windows集群中每个节点上开启了AlwaysOn的SQLServer应用组成了SQLServer集群2023-05-05
LoadUserProfile 调用因下列错误而宣告失败: 拒绝访问的常见解决方法
今天突然看到服务器出现这样的错误提示,拒绝访问,肯定是权限问题,是哪里的权限问题呢。2011-01-01


最新评论