我想为我的js,css和html文件设置不同的缓存控制头值。 我知道在每个文件夹的基础上设置它的选项,但我的应用程序在同一文件夹中有html和js文件。
甚至可以在IIS中使用吗?
答案 0 :(得分:10)
使用IIS出站重写规则在IIS 7+中可以实现。例如。如果要使所有.html页面无效,请在web.config的outboundRules部分中创建以下出站规则(在安装IIS重写模块之后):
<outboundRules>
<rule name="AdjustCacheForHTMLPages" preCondition="IsHTMLFile">
<match serverVariable="RESPONSE_Cache-Control" pattern=".*" />
<action type="Rewrite" value="no-cache, no-store, must-revalidate" />
</rule>
<preConditions>
<preCondition name="IsHTMLFile">
<add input="{REQUEST_FILENAME}" pattern=".*\.html" />
</preCondition>
</preConditions>
</outboundRules>
答案 1 :(得分:1)
@jotap的答案仅适用于以“ .html”结尾的文件请求。我也需要它来处理内容类型:
<outboundRules>
<rule name="AdjustCacheForHTMLPages" preCondition="IsHTML">
<match serverVariable="RESPONSE_CACHE-CONTROL" pattern=".*" />
<action type="Rewrite" value="no-cache, no-store, must-revalidate" />
</rule>
<preConditions>
<preCondition name="IsHTML" logicalGrouping="MatchAny">
<add input="{REQUEST_FILENAME}" pattern="\.html$" />
<add input="{RESPONSE_CONTENT-TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>