【问题标题】:Detect application update for SPA检测 SPA 的应用程序更新
【发布时间】:2017-06-14 01:55:42
【问题描述】:

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

当此类过时版本尝试延迟加载捆绑包并获得 404 时,这会导致应用程序已加载实例出现问题。

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    假设您在本地构建并 rsync 到您的服务器,您只需替换替换的文件,旧的哈希值仍然存在。

    【讨论】:

    • 如果我们使用 docker 镜像,那么旧文件根本不存在怎么办?
    猜你喜欢
    • 2021-01-25
    • 1970-01-01
    • 2023-04-10
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多