我有一个使用javascript和HTML页面的网站。当我更新任何HTML / javascript时,除非删除所有cookie,浏览器缓存和历史记录,否则用户看不到更改。
我尝试在HTML Head部分中添加以下内容。但这没有帮助。 另外,我尝试为每个JavaScript包含添加“?v = 1”。但这也无济于事。
<meta http-equiv="PRAGMA" content="NO-CACHE" />
<meta http-equiv="cache-control" content="max-age=0"/>
<meta http-equiv="cache-control" content="no-cache"/>
该怎么办才能使浏览器不保存网站缓存等?
答案 0 :(得分:0)
您应该尝试在服务器上为HTML文件设置cache-control
标头:
Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Apache的示例文章:Proper cache busting for index.html (Apache)。不同的服务器设置这些标头的方式不同,但是所有HTTP标头都相同。
完成后,您仍应更改内部JS / CSS文件的v =查询参数,以确保在需要时破坏(或使用!)其缓存版本。
答案 1 :(得分:0)
您应该在尝试从中获取资产的网址末尾添加唯一的内容
<script src="test.js?version=1"></script>
这是最可靠的方法。
如果要加载的资源太多,我会在某个地方维护一个版本号,并让JS将其附加到url上。
有一些帮助-
https://curtistimson.co.uk/post/front-end-dev/what-is-cache-busting/
并且也请参阅此问题-