Iis 7 按文件类型指定IIS7中的预压缩(gzip)与非预压缩内容

Iis 7 按文件类型指定IIS7中的预压缩(gzip)与非预压缩内容,iis-7,gzip,Iis 7,Gzip,我试图为一系列嵌套文件夹设置一个IIS7 intranet CDN,这些文件夹包含一些预压缩(gzip)css内容,但也包含图像文件(显然是非压缩的) 文件夹结构基本上如下所示: Skins Skins\SkinName1\*.css Skins\SkinName1\Control1\*.png Skins\SkinName1\Control2\*.png Skins\SkinName1\lots more controls..\*.png Skins\SkinName2\... Skins\l

我试图为一系列嵌套文件夹设置一个IIS7 intranet CDN,这些文件夹包含一些预压缩(gzip)css内容,但也包含图像文件(显然是非压缩的)

文件夹结构基本上如下所示:

Skins
Skins\SkinName1\*.css
Skins\SkinName1\Control1\*.png
Skins\SkinName1\Control2\*.png
Skins\SkinName1\lots more controls..\*.png
Skins\SkinName2\...
Skins\lots more skins...\...
……你明白了

css都是预压缩的(gzip'ed),所以我需要在它们上面设置一个内容编码头'gzip'。。但是我显然不能在图像文件上设置相同的头

我知道我可以在根目录下设置Content Encoding gzip文件夹,然后不在所有控件(图像)文件夹上继承它。。但是有大量的图像文件夹需要处理

有没有办法通过文件类型或其他方式来设置此选项,从而避免单独查看每个文件夹

*不幸的是,我无法控制文件夹结构


谢谢-

好的,我终于意识到我应该使用URL重写模块,让它添加自定义标题

我基本上只是用了这个:

    <rewrite>
      <outboundRules>
        <rule name="Set custom HTTP response header" enabled="true">
          <match serverVariable="RESPONSE_Content_Encoding" pattern=".*" />
          <conditions>
            <add input="{REQUEST_URI}" pattern="\.css$" />
          </conditions>
          <action type="Rewrite" value="gzip"/>
        </rule> 
      </outboundRules>
    </rewrite>

并让未预压缩的内容按其应该的方式默认


希望它能帮助别人-

好的,我终于意识到我应该使用URL重写模块,让它添加自定义标题

我基本上只是用了这个:

    <rewrite>
      <outboundRules>
        <rule name="Set custom HTTP response header" enabled="true">
          <match serverVariable="RESPONSE_Content_Encoding" pattern=".*" />
          <conditions>
            <add input="{REQUEST_URI}" pattern="\.css$" />
          </conditions>
          <action type="Rewrite" value="gzip"/>
        </rule> 
      </outboundRules>
    </rewrite>

并让未预压缩的内容按其应该的方式默认


希望它能帮助别人-

是的,这正是我想要的。我一直在自动压缩和无内容编码之间徘徊太久,这让我有些疯狂,然后我发现了这个!我应该把配置放在哪里?是什么让IIS服务器预压缩文件?是的,正是我想要的。我一直在自动压缩和无内容编码之间徘徊太久,这让我有些疯狂,然后我发现了这个!我把配置放在哪里?是什么让IIS服务器预压缩文件?如果客户端出于任何原因不支持
gzip
,这个方案不会失败吗?@EricLaw Fair point。我猜你真的应该考虑先检查接受编码头,但从我所记得的,我认为几乎所有的浏览器都支持它多年。在我的特定场景中,它是用于内部网CDN的,因此我可以安全地假设它是两种不同的企业标准现代浏览器之一。如果客户端出于任何原因不支持
gzip
,该方案不会失败吗?@EricLaw Fair point。我猜你真的应该考虑先检查接受编码头,但从我所记得的,我认为几乎所有的浏览器都支持它多年。在我的特定场景中,它是用于内部网CDN的,因此我可以安全地假设它是几种不同的企业标准现代浏览器之一。