You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure App Service中web.config设置文件ETag的等效配置方法

Azure App Service 对应web.config等效配置

要实现Apache中.htaccess里针对JPG/JPEG文件设置ETag(基于修改时间和大小)并阻止浏览器缓存的效果,Azure App Service(基于IIS)可以通过web.config做如下配置:

<configuration>
  <system.webServer>
    <!-- 控制静态文件缓存,阻止浏览器长期缓存 -->
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:00" />
      <!-- 确保JPG/JPEG的MIME类型配置正确 -->
      <remove fileExtension=".jpg" />
      <remove fileExtension=".jpeg" />
      <mimeMap fileExtension=".jpg" mimeType="image/jpeg" />
      <mimeMap fileExtension=".jpeg" mimeType="image/jpeg" />
    </staticContent>
    
    <!-- 自定义ETag生成规则,和Apache的MTime+Size逻辑对齐 -->
    <rewrite>
      <outboundRules>
        <rule name="Set JPG/JPEG ETag" preCondition="IsJPGFile">
          <match serverVariable="RESPONSE_ETag" pattern=".*" />
          <action type="Rewrite" value="{LAST_MODIFIED}_{CONTENT_LENGTH}" />
        </rule>
        <preConditions>
          <preCondition name="IsJPGFile">
            <add input="{REQUEST_FILENAME}" pattern="\.(jpg|jpeg)$" ignoreCase="true" />
          </preCondition>
        </preConditions>
      </outboundRules>
    </rewrite>
  </system.webServer>
</configuration>

关键说明:

  • 缓存控制:<clientCache>节点设置cacheControlMaxAge="00:00:00",让浏览器每次请求都验证文件,达到阻止长期缓存的目的。
  • ETag对齐:通过URL重写的出站规则,用文件的修改时间(LAST_MODIFIED)和大小(CONTENT_LENGTH)生成ETag,完全对应Apache里FileETag MTime Size的逻辑。其实IIS默认的ETag就是基于这两个值生成的,不过用规则可以明确自定义格式,避免环境差异。
  • MIME类型处理:移除并重新注册JPG/JPEG的MIME类型,避免潜在的配置冲突问题。

如果你的站点是.NET应用,注意把这段配置和现有web.config的system.webServer节点合并,不要出现重复节点。

内容的提问来源于stack exchange,提问作者Douglas Woods

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 08:20:27