启用对静态内容的 HTTP (GZIP)压缩 (IIS 7)(源自官方以及搜索整理)

启用对静态内容的 HTTP 压缩

您可以通过以下方法执行此过程:使用用户界面 (UI)、在命令行窗口中运行 Appcmd.exe 命令、直接编辑配置文件或编写 WMI 脚本。

用户界面

使用 UI
  1. 打开 IIS 管理器,然后导航至您要管理的级别。 有关如何打开 IIS 管理器的信息,请参阅 打开 IIS 管理器 (IIS 7)。 有关如何在 UI 的各个位置间进行导航的信息,请参阅 在 IIS 管理器中导航 (IIS 7)

  2. “功能视图”中,双击“压缩”

  3. “压缩”页上,选中“启用静态内容压缩”旁边的框。

  4. “操作”窗格中,单击“应用”

命令行

若要启用对静态内容的 HTTP 压缩,请在命令提示符处键入如下命令,然后按 Enter:

appcmd set config /section:urlCompression /doStaticCompression:True

有关 Appcmd.exe 的详细信息,请参阅 Appcmd.exe (IIS 7)

配置

本主题中的过程会影响以下配置元素:

<urlCompression>

有关 IIS 7 配置的详细信息,请参阅 MSDN 上的 IIS 7.0:IIS 设置架构(可能为英文页面)

WMI

请使用以下 WMI 类、方法或属性执行此过程:

  • HttpCompressionSection.Schemes.DoStaticCompression 属性

  • HttpCompressionSchemeElement

有关 WMI 和 IIS 的详细信息,请参阅 IIS 7 中的 Windows Management Instrumentation (WMI)。 有关与此过程关联的类、方法或属性的更多信息,请参阅 MSDN 网站上的 IIS WMI 提供程序参考(可能为英文页面)

 

来源:

http://technet.microsoft.com/zh-cn/library/cc754668%28WS.10%29.aspx

 

 

注:默认情况下只会在你网站根目录有效果,如果想让 js,css 文件夹里使用GZIP,那么则需要在站点里相应的目录下执行以上操作

 

讲一下如果配置了,可以在

http://tool.chinaz.com/Gzips/
测试,当然可以具体到css和js 例如(..com/js/js.js).

 

 

当然有可能这样配置后无效,解决方法如下:

 

先打开IIS管理,选择我要设置的站点,然后在右边的功能区找到MIME TYPES看看里面是否有.JS的选项,如果没有可以手功加上

有的话把.js的值设置成:application/x-javascript记住不能少并x-有的网友介绍是application/javascript

偶在WIN2008+IIS7下试过,如果不加x-也是不会压缩的。

当然最好在上传JS前对JS进行一次压缩这样效果会更好啦。 可以到网上找找TBCompressor工具,这个工具压缩不错
先打开IIS管理,选择我要设置的站点,然后在右边的功能区找到MIME TYPES看看里面是否有.JS的选项,如果没有可以手功加上

有的话把.js的值设置成:application/x-javascript记住不能少并x-有的网友介绍是application/javascript

偶在WIN2008+IIS7下试过,如果不加x-也是不会压缩的。

当然最好在上传JS前对JS进行一次压缩这样效果会更好啦。 可以到网上找找TBCompressor工具,这个工具压缩不错

 




IIS7下js文件启用Gzip后却不压缩的解决方法
IIS7已经启用静态文件压缩(Gzip)但是死活不压缩,查找后发现是II7下MIME类型设置问题

将.js的MIME类型设置为application/javascript
再查看页面,已经启用了Gzip。

不过,几个天后又发现有的js文件被压缩,有的却没有。
查找原因发现是引用js文件是没有设置type
<script></script>
<script src=”A.js”></script>
加上type="text/javascript"类型后问题解决。

 

 

 偶尔失效(一会有效一会无效)的解决方法

 

3. 使用文本编辑器打开C:\Windows\System32\inetsrv\MetaBase.xml(建议先备份),

找到Location =“/LM/W3SVC/Filters/Compression/gzip用于设置gzip压缩,

找到Location =”/LM/W3SVC/Filters/Compression/deflate“用于设置deflate压缩。 上面两个节点紧挨着。并且设置的属性相同。

如果需要压缩动态文件,则将HcDoDynamicCompression设置为”TRUE“,

并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名,如aspx;

如果需要压缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为”TRUE“,

并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如xml、css等;

HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的压缩率,数值在0-10, 默认为0。

HcDynamicCompressionLevel属性说明:HcDynamicCompressionLevel Metabase Property

HcOnDemandCompLevel 属性说明:HcOnDemandCompLevel Metabase Property

说明: 这两个属性值一般推荐设置为9, 具有最佳性价比。

 

<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
        js
        css
        swf
        xml"
    HcOnDemandCompLevel="9"
    HcPriority="1"
    HcScriptFileExtensions="asp
    aspx
    dll
    exe">
</IIsCompressionScheme>
 

 

注意

1. 在编辑MetaBase.xml前需要停止IIS,可以使用 net stop iisadmin

2. 修改完成后开启iisadmin服务,并执行iisreset命令

关于SEO的测试

压缩是否对SEO有影响,经测试,开启后仍然可以被很好的收录。

关于对SEO影响的研究文章,还可以参考下面的几篇文章。

具体的效率问题,将继续监控以作研究。

 

如果以上设置无效,或者MetaBase.xml没有响应节点,用以下方式解决

 

第一种是在web.config中添加以下内容,将frequentHitThreshold调至1,将frequentHitTimePeriod调制10分钟

<system.webServer>

<serverRuntime enabled="true"

frequentHitThreshold="1"

frequentHitTimePeriod="00:10:00"/>

</system.webServer>

第二种方法是打开%windir%\system32\inetsrv\appcmd.exe,然后再命令行界面中输入以下命令字符串,然后回车

set config -section:system.webServer/serverRuntime -frequentHitThreshold:1

 

如果 appcmd.exe 窗口执行无法停留,可以执行连续指令:

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/serverRuntime -frequentHitThreshold:1

 

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/serverRuntime -frequentHitTimePeriod: 00:10:00

转载于:https://www.cnblogs.com/caicainiao/archive/2011/11/09/2243270.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值