【问题标题】:Website caching- browser caches website pages/js and avoid user to see website updates [duplicate]网站缓存-浏览器缓存网站页面/js并避免用户查看网站更新[重复]
【发布时间】:2019-11-13 21:09:15
【问题描述】:

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

有什么办法让浏览器不保存网站缓存等?

【问题讨论】:

    标签: javascript html browser-cache


    【解决方案1】:

    您应该尝试在您的服务器上为您的 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= 查询参数,以确保在需要时破坏(或使用!)它们的缓存版本。

    【讨论】:

    • 如何防止html页面缓存?
    • 这些标头用于来自您的服务器的任何 HTTP 响应。有关 node.js,请参阅 setHeaderThis SO q&a 用于烧瓶。等
    【解决方案2】:

    您应该在尝试从中获取资产的网址末尾添加一些独特的内容

    <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?

    【讨论】:

    • 如何防止html页面缓存?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 2018-06-22
    • 2019-08-27
    • 2018-10-02
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    相关资源
    最近更新 更多