【问题标题】:User needs to clear the cache for new release用户需要为新版本清除缓存
【发布时间】:2012-12-02 22:44:51
【问题描述】:

每次我们发布版本时,用户都需要清除缓存以使新代码生效。有没有办法自动完成?

【问题讨论】:

  • 这是包含在网站上的吗?这是您无法控制包含语句的第三方Javascript吗?需要更多详细信息。
  • 检查是否需要更改资源(可能在服务器端代码中),将该值传递给客户端(通过 ajax 静态或动态)并在 javascript 中:if (resource_changed) location.reload(true); sth like this
  • 嗨,这个问题你解决了吗?
  • 有很多方法可以做到这一点。如果你在做 nodejs 、sailsjs 相关的环境,我可以给你一个更好的解决方案。

标签: javascript


【解决方案1】:

如果您谈论的是网站上的 Javascript 包含,那么您只需附加一个带有递增版本号的查询字符串。所以一个版本是:

<script src="codebase.js?v=1"></script>

下一个版本将是:

<script src="codebase.js?v=2"></script>

如果您谈论的是您无法控制其脚本包含的第三方托管文件,那么问题就更加困难了。

【讨论】:

  • 这实际上是我们使用的技术(附加一个新的版本号),但它仍然会发生。我不知道对此能做些什么。
  • 我们正在讨论同一个问题,在我看来这是一个服务器端问题。版本号需要以某种方式添加到文件中,可能需要重写以包含路径或附加版本号,如上例所示。我们正在运行 IIS,所以我必须对其进行一些研究,但我认为某种 URL 重写是可行的方法。并确保所服务的页面也是“触摸”的。吊带和腰带。 :)
【解决方案2】:

如何在默认页面上添加无缓存 html 标签?

类似于回答here

【讨论】:

    猜你喜欢
    • 2014-07-04
    • 2018-11-05
    • 2015-03-14
    • 2013-04-13
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多