Pre-compress static files in IIS 6

2019-04-12 23:01发布

I am implementing Gzip compression for CSS and JS files on my site and just need to double check something.

Is the file compressed on every request? or is it collected and sent from the Temporary folder (if the file exists)? I just want to be sure that my files are not compressed on every request.

Also, is this a default behaviour or do I need some extra configurtion?

And last, do I need to worry or configure something when using hash tags in the path (to inform the browser that the file has changed) and static file compression? or it should work with no problem.

Edit: I am just using static compression

Many thanks

3条回答
劫难
2楼-- · 2019-04-12 23:36

In order to get the most out of IIS compression you will need to add a few extra bits into the metabase file.

  1. Backup your meta base file.
  2. Enable live edit to the meta base file in IIS (or you need to restart IIS when your done.)

find the IIsCompressionScheme and make the following edits to the meta base file

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

Once done test a page from your site using a FF plug in like YSlow or Firebug, with Firebug you can inspect each element in the Net tab and check if the right compression is being applied to the right file types.

There is a great article with examples here http://www.codinghorror.com/blog/2004/08/http-compression-and-iis-6-0.html

查看更多
狗以群分
3楼-- · 2019-04-12 23:49

"The newly compressed file is then stored in the compression directory, and subsequent requests for that file are serviced directly from the compression directory. In other words, an uncompressed version of the file is returned to the client unless a compressed version of the file already exists in the compression directory."*

查看更多
ゆ 、 Hurt°
4楼-- · 2019-04-12 23:52

IIS 6 supports both dynamic and static compression.

Have look at the relevant documentation and a decent blog entry on the subject.

查看更多
登录 后发表回答