在IIS 6中预压缩静态文件

时间:2011-05-04 13:30:33

标签: iis-6 compression gzip http-compression

我正在为我的网站上的CSS和JS文件实现Gzip压缩,只需要仔细检查一下。

每个请求都压缩文件吗?或者它是从Temporary文件夹中收集和发送的(如果文件存在)?我只是想确保我的文件不会在每次请求时被压缩。

此外,这是默认行为还是需要一些额外的配置?

最后,在路径中使用哈希标记(通知浏览器文件已更改)和静态文件压缩时,是否需要担心或配置?或者它应该没有问题。

编辑:我只是使用静态压缩

非常感谢

3 个答案:

答案 0 :(得分:1)

IIS 6支持动态和静态压缩。

请查看主题的relevant documentationdecent blog entry

答案 1 :(得分:1)

“然后将新压缩的文件存储在压缩目录中,并直接从压缩目录中为该文件的后续请求提供服务。换句话说,除非压缩版本的压缩版本,否则将文件的未压缩版本返回给客户端。该文件已存在于压缩目录中。“*

答案 2 :(得分:1)

为了充分利用IIS压缩,您需要在配置数据库文件中添加一些额外的位。

  1. 备份您的元库文件。
  2. 启用IIS中元基础文件的实时编辑(或者在完成后需要重新启动IIS。)
  3. 找到IIsCompressionScheme并对元基本文件进行以下编辑

    <IIsCompressionScheme   Location ="/LM/W3SVC/Filters/Compression/deflate"
            HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
            HcCreateFlags="0"
            HcDoDynamicCompression="TRUE"
            HcDoOnDemandCompression="TRUE"
            HcDoStaticCompression="TRUE"
            HcDynamicCompressionLevel="10"
            HcFileExtensions="htm
                html
                css
                js
                txt
                xml"
            HcOnDemandCompLevel="10"
            HcPriority="1"
            HcScriptFileExtensions="asp
                dll
                aspx
                axd
                ashx
                asbx
                asmx
                swf
                asmx
                exe"
        >
    </IIsCompressionScheme>
    <IIsCompressionScheme   Location ="/LM/W3SVC/Filters/Compression/gzip"
            HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
            HcCreateFlags="1"
            HcDoDynamicCompression="TRUE"
            HcDoOnDemandCompression="TRUE"
            HcDoStaticCompression="TRUE"
            HcDynamicCompressionLevel="10"
            HcFileExtensions="htm
                html
                js
                css
                txt
                xml"
            HcOnDemandCompLevel="10"
            HcPriority="1"
            HcScriptFileExtensions="asp
                dll
                aspx
                axd
                ashx
                asbx
                asmx
                swf
                asmx
                exe"
        >
    </IIsCompressionScheme>
    

    使用像YSlow或Firebug这样的FF插件完成从您的站点测试页面,使用Firebug,您可以检查Net选项卡中的每个元素,并检查是否正确的压缩应用于正确的文件类型。

    这里有一篇很棒的文章,其中有http://www.codinghorror.com/blog/2004/08/http-compression-and-iis-6-0.html