iis - 如何在 IIS 10 上配置缓存?
问题描述
我有一个网站,并且启用了缓存,如下所示:
- 为服务器启用缓存
- 为我正在测试的网站启用缓存
- 在响应标头中,我为整个网站设置了 30 天后的 Web 内容过期(没有任何特定文件夹的设置)
- 为文件 .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 变化:接受编码
有谁知道如何解决这个问题?
谢谢干杯,
解决方案
看起来您同时启用了clientcache
服务器端输出缓存。根据您的描述,这种情况下只需要客户端缓存。
因此,请从您的 IIS 配置中删除输出缓存规则。
我们只需要设置<clientcache>
部分
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>
此外,请确保您的网络浏览器已启用客户端缓存。否则,将永远不会缓存静态文件。
当然,失败的请求跟踪会告诉我们缓存控制头是如何产生的。
推荐阅读
- java - Docker MySQL在超时后丢弃表:连接关闭后不允许操作
- javascript - 使用 PHP 时钟显示“我们明天在 _____ 重新开放”
- c - 访问作为结构数组传递给函数的结构成员
- r - 如何在 R 中将所有日期更改为相同的格式(如果列有一堆不同的字符格式)?
- material-ui - Material ui - 我的标题和段落周围不需要的边距
- julia - 在 Julia 中解耦 tspan 和初始时间 t0
- php - 未定义索引的多个实例
- amazon-web-services - 从 s3 获取视频高度宽度
- vue.js - 如何在for循环vue js中维护自动完成值
- excel - 我在 VBA 上收到应用程序定义或对象定义的错误