【发布时间】:2023-01-11 02:00:53
【问题描述】:
迄今为止我发现的旧 Cache Buster 技术是:
- 链接 src 中的查询字符串:/mstylesheet.css?cache_buster=12345
- 每次更改文件名:/mstylesheet-12345.css
- Apache:缓存控制“必须重新验证”与无缓存结合使用
我注意到所有这些顽固的浏览器缓存拒绝获取更新资产的问题?
如果我理解正确,浏览器缓存似乎将以下 URL 视为完全不同的实体?
- /mstylesheet.css
- /mstylesheet.css?cache_buster=12345
- /mstylesheet.css?cache_buster=54321
所以问题是:以下 javascript 是否会强制通过链接标记链接的现有样式表在浏览器缓存中更新,而没有缓存破坏查询字符串?
fetch("/mstylesheet.css",{ method: "GET",headers: {"Cache-Control": "no-cache"}});(我想让它时不时地运行一次。不是在每次加载页面时)。
【问题讨论】:
-
no-cache是服务器端,。如果你想控制缓存,而不是服务器端,你可以考虑使用 service worker,你决定如何缓存资产。 -
Service Worker 是否也会违反获取缓存? stackoverflow.com/a/33266296/19248673 看起来像是使用缓存破坏查询字符串的提议?
标签: javascript html css browser-cache