Asp.Net - ClientCache - 它会因文件类型而异吗?

Asp.Net - ClientCache - can it vary by file type?

我一直在看,并在我目前正在进行的开发项目中实施了客户端缓存。

因为我正在使用 Asp.Net,所以我直接使用以下代码更新了 web.config 文件:

<staticContent>
  <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
</staticContent>

我还实现了一个 'fingerprinting' 解决方案,它允许我自动从缓存中过期 CSS 和脚本文件。

但是,我开始考虑如果图像发生变化怎么办 - 假设它被修改并重新上传而没有重命名。在这种情况下,我不一定希望浏览器继续缓存旧版本的图像长达一年。

因此问题是可以使用 web.config 静态内容部分为不同的文件类型设置不同的缓存持续时间吗?

您可以使用位置路径将缓存限制到文件夹甚至特定文件。不确定你是否可以做类似 *.pdf 的事情。此处可能的选项:Can I use wildcards in the web.config location path attribute?

<location path="images">
    <system.webServer>
      <staticContent>
        <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
      </staticContent>
    </system.webServer>
  </location>