【发布时间】:2017-11-22 17:21:11
【问题描述】:
当 Angular 2+ 应用更新时,有没有办法处理?
注意:不是 Angular 更新时,例如从 4.1.0 到 4.1.2(这不是)
当我说“更新”时,我的意思是:
代码更改时并发布到生产环境。
当我发布 Angular 4 内置系统的更新时,客户端的视图开始出现错误,因为 NG 的 javascript 已更改,甚至有其他 javascript 生成的名称。
处理这个问题的正确方法是什么?
Angular 在何时更新代码/资源时对浏览器有“一些”官方说法?
或类似的东西。
谢谢。
【问题讨论】:
-
目前还不清楚到底是什么问题,例如NG 的javascript 发生了变化,甚至还有其他javascript 生成的名称 的含义。如果问题是 JS 脚本被缓存在浏览器端并且没有自动更新,这与 Angular 无关。这是关于特定于服务器端的缓存失效。如果您使用的是 Angular CLI(问题没有说明这一点),可能会有支持它的解决方案。
-
问题是当一个内置 Angular 的应用程序发布时,客户端访问我们的站点“example.com”并获取该 Angular 视图的当前版本,但是当你修复类似错误的东西时,你重新- 发布更改。但客户必须刷新才能看到这种变化。大多数客户不知道更改何时发布。 Angular 如何自动处理这个问题。
-
不能。它可以是随机的 JS 脚本,结果是一样的。同样,这是特定于您的服务器端的。不是角的。更新的脚本文件应该有不同的文件名(包含版本或散列),或不同的 url(
?带有版本或散列的查询)。缓存失效在 SO 上讨论了很多次。如果您无法从现有答案中解决问题,请考虑在服务器端重新提出问题并提供准确的详细信息。 -
我不认为@NinjaCoding 指的是缓存失效,而是通过应用程序通知用户应用程序已更改。
-
如果没有 Web 套接字连接,或者是否已经在客户端和服务器上内置了用于检查代码更新的逻辑,您无法真正告诉浏览器何时更新。不过一般来说,如果没有 API 更新,我看不出旧代码会因为世界上存在新版本而突然中断。
标签: javascript angular