gpt4 book ai didi

angular - 新部署 Angular2 应用程序后如何刷新浏览器

转载 作者:太空狗 更新时间:2023-10-29 17:52:19 25 4
gpt4 key购买 nike

所以我有几个客户端使用我的 Angular 2 应用程序打开了浏览器窗口。然后我执行 ng build --prod,并将新构建发布到服务器。

我如何强制客户端刷新所有缓存的脚本?

最佳答案

我刚刚完成了这个问题的解决方案。

我尝试了几种不同的方法,但最终维护了一个单独的 json 文件,应用程序可以在设定的时间间隔内请求该文件,并与当前加载的版本进行比较,然后采取相应的行动。

我还玩过 google 的 sw-precache 和其他一些我希望能解决问题的东西。 SW-Precache这看起来很棒,但并不能完全可靠地解决我们的问题,因为我找不到安排定期检查以使相关缓存无效的方法。

问题 1:将新文件添加到 angular-cli.json 中的 Assets block ,以便将其复制到分发文件夹中,而不是包含在构建的 js 文件中,因为这会否定我们正在尝试做的事情的全部意义。

  "assets": [
"assets",
"favicon.ico",
"web.config",
"version.json"
],

然后我简单地创建了一个简单的服务,其中有一个函数来请求这个文件,另一个用于设置和间隔以重复调用请求。我还选择通过包含一个 unix 时间戳作为查询参数来对这些请求使用“硬”缓存破坏。这可能是老派,但它确保无论设置什么或在哪里设置,您都不会获得 version.json 文件的缓存版本。

最后,我会推荐一些方法来使此 version.json 文件与您的应用程序的版本号保持一致。快速搜索给我带来了

Versiony on NPM

在 npm 安装后允许对语义版本号进行非常简单的修改。我在我的 package.json 中添加了一些脚本,以在构建之前自动确保 version.json 与 package.json 一致,只是为了确保没有问题,因为代码已更改,但版本没有。

关于angular - 新部署 Angular2 应用程序后如何刷新浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42411789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com