我有一个网站,并且启用了缓存,如下所示:
- 为服务器启用缓存
- 为我正在测试的网站启用缓存
- 在响应标头中,我将整个网站的网页内容过期时间设置为 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
请问有人知道如何解决吗?
谢谢
干杯,
看起来您已经启用了这两个功能clientcache
和服务器端同时输出缓存。根据您的描述,这种情况下只需要客户端缓存。
因此,请从 IIS 配置中删除输出缓存规则。
我们只需要设置<clientcache>
section
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>
此外,请确保您的网络浏览器已启用客户端缓存。否则,静态文件将永远不会被缓存。
当然,失败的请求跟踪会告诉我们缓存控制头是如何生成的。
https://learn.microsoft.com/en-us/iis/troubleshoot/using-failed-request-tracing/troubleshooting-failed-requests-using-tracing-in-iis https://learn.microsoft.com/en-us/iis/troubleshoot/using-failed-request-tracing/troubleshooting-failed-requests-using-tracing-in-iis
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)