检测SPA的应用程序更新

时间:2017-01-28 12:51:56

标签: angular single-page-application angular-cli

angular-cli捆绑时,块在生产模式下获得唯一名称。重复捆绑(例如,部署新版本)会清除dist目录,并在其中放入带有新文件名的新捆绑包,只替换index.html,指向现在的捆绑包名称。

当这样一个过时的版本试图延迟加载一个包并得到一个404时,这会导致已经加载的应用程序实例出现问题。

解决此问题的最佳做法是什么?我可以想到几个解决方案,但想寻求一些意见。

  • 调整构建过程,不要删除过时的文件,而是将它们保持一段时间并行。问题仍然存在:持续多久? SPA浏览器窗口可以保持打开的时间没有直接限制。

  • 以某种方式处理捆绑加载404并重新加载应用程序。哪个会做得最好?

  • 定期更新"更新"使用服务器端组件检查SPA。这样做的好处是能够强制用户在新版本可用时更新其SPA,但缺点是需要服务器端逻辑,从而混合前端和后端。

1 个答案:

答案 0 :(得分:0)

如果使用Cloudflare等免费反向代理,它会缓存静态资源一段时间。实际上,这不是您构建过程中的一个问题吗?

假设你在本地和rsync构建服务器,你只需要替换被替换的文件,旧的哈希仍然存在。