网站缓存-浏览器缓存网站页面/ js,避免用户看到网站更新

时间:2019-07-03 08:11:35

标签: javascript html browser-cache

我有一个使用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"/>

该怎么办才能使浏览器不保存网站缓存等?

2 个答案:

答案 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/

并且也请参阅此问题-

How to prevent caching of my Javascript file?