【问题标题】:How to configure cache on IIS 10?如何在 IIS 10 上配置缓存?
【发布时间】:2020-06-20 09:33:18
【问题描述】:

我有一个网站,我启用了如下缓存:

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

截图:

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

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

请问有人知道怎么解决吗?

谢谢 干杯,

【问题讨论】:

    标签: iis


    【解决方案1】:

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

    所以请从您的 IIS 配置中删除输出缓存规则。

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-10-29
      • 1970-01-01
      • 2021-01-18
      • 1970-01-01
      • 2020-11-11
      • 1970-01-01
      • 2010-09-09
      • 2021-10-18
      • 1970-01-01
      相关资源
      最近更新 更多