如何在 IIS 10 上配置缓存?

Tho*_*ton 2 iis

我有一个网站,并且启用了缓存,如下所示:

  • 为服务器启用缓存
  • 为我正在测试的网站启用缓存
  • 在响应标头中,我将整个网站的 Web 内容过期设置为 30 天后(没有针对任何特定文件夹的设置)
  • 为文件 .css、.js、.png、.woff2 启用缓存
  • 在 Chrome 中以隐身模式浏览网站

截图:

在此输入图像描述 在此输入图像描述 在此输入图像描述

当我浏览我的网站时,第一次它应该加载所有文件,但是如果我刷新页面,则应该从缓存加载文件,但情况并非如此(下面的屏幕截图)。在我的文件的响应标头中:

  • 缓存控制:无缓存,最大年龄=2592000
  • 内容编码:gzip 内容长度:30116 内容类型:
  • application/javascript 日期: Sun, 08 Mar 2020 04:31:20 GMT etag:
  • “80b55a25ef1d51:0”最后修改时间:2020 年 3 月 3 日星期二 13:21:23 GMT
  • 服务器:Microsoft-IIS/10.0 状态:200 变化:Accept-Encoding

请问有人知道如何解决吗?

谢谢干杯,

在此输入图像描述

小智 5

看起来您已经clientcache同时启用了服务器端输出缓存。根据您的描述,这种情况下只需要客户端缓存。

因此,请从 IIS 配置中删除输出缓存规则。

我们只需要设置<clientcache>部分

<staticContent>
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>
Run Code Online (Sandbox Code Playgroud)

缓存控制:max-age=86400

此外,请确保您的网络浏览器已启用客户端缓存。否则,静态文件将永远不会被缓存。

当然,失败的请求跟踪会告诉我们缓存控制头是如何生成的。

https://learn.microsoft.com/en-us/iis/troubleshoot/using-failed-request-tracing/troubleshooting-failed-requests-using-tracing-in-iis