【问题标题】:Angular 2 see changes in a published new app updateAngular 2 在已发布的新应用更新中查看更改
【发布时间】:2016-12-27 11:34:32
【问题描述】:

目前,我正在运行 angular 2 应用程序,并且在共享虚拟主机上运行良好。

我正在使用 Angular 2 cli,每当我进行更改时,我都会上传我的 dist 文件夹。

当我在进行更改并上传新的dist 内容后访问我的应用程序时,我看到的是旧版本 - 没有任何更改。 当我在 Chrome 中从间谍模式 (CTRL+SHIFT+N) 访问应用程序时,我看到了新版本。

我假设每次更改 Angular 2 应用程序时都需要删除缓存,因此浏览器会重新加载新版本。

当我进行更改和上传新的应用版本时,有什么方法可以让它重新加载应用?

我不希望通知访问者刷新浏览器缓存以查看新版本..

【问题讨论】:

    标签: angular web-hosting


    【解决方案1】:

    我发现这是一个很好的解决方案。他有一个在每个版本上运行的脚本,该脚本会创建一个经常检查的 version.json,如果该文件发生更改,它会重新加载应用程序(或任何您希望它执行的操作)。

    https://blog.nodeswat.com/automagic-reload-for-clients-after-deploy-with-angular-4-8440c9fdd96c

    【讨论】:

      【解决方案2】:

      在 URL 中添加版本号,让客户端定期检查版本,并在检测到新版本时重定向到新 URL。

      另见htaccess - How to force the client's browser to clear the cache?

      【讨论】:

      • 谢谢。起初它看起来不错,但后来我考虑为每次升级创建一个新 URL - 这不是一个很好的解决方案。如果谷歌已经索引了我的网站 URL - 每次我升级时它都必须索引每个新的 URL,这使得这个解决方案对 SEO 非常不利。虽然它给了我一些想法.. 将版本号添加到 main.js 文件并使用新文件路径更新 index.html 可能有效吗? edit:好像在`index.html`\:中没有引用main.js
      • AFAIK 添加一些查询参数也会使浏览器重新加载并保持 URL 不变。
      猜你喜欢
      • 1970-01-01
      • 2016-01-04
      • 1970-01-01
      • 2019-10-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-26
      • 1970-01-01
      • 2017-04-07
      相关资源
      最近更新 更多