alonli 发表于 2015-8-16 11:58:16

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

启用对静态内容的 HTTP 压缩
      
           您可以通过以下方法执行此过程:使用用户界面 (UI)、在命令行窗口中运行 Appcmd.exe 命令、直接编辑配置文件或编写 WMI 脚本。
         用户界面
         
         使用 UI
         
            
[*]                 打开 IIS 管理器,然后导航至您要管理的级别。 有关如何打开 IIS 管理器的信息,请参阅 打开 IIS 管理器 (IIS 7)。 有关如何在 UI 的各个位置间进行导航的信息,请参阅 在 IIS 管理器中导航 (IIS 7)。
[*]                 在“功能视图”中,双击“压缩”。
[*]                 在“压缩”页上,选中“启用静态内容压缩”旁边的框。
[*]                 在“操作”窗格中,单击“应用”。
                           命令行
         
           若要启用对静态内容的 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
页: [1]
查看完整版本: 启用对静态内容的 HTTP (GZIP)压缩 (IIS 7)(源自官方以及搜索整理)