在Angular(2+)中,如何强制客户端浏览器重新下载

时间:2017-12-28 15:04:20

标签: angular angular-cli

我使用Angular CLI创建应用程序。

每当我发布新版本的应用时,我都希望客户端浏览器重新下载。

我假设我可以做一些事情,比如将?v = 1 附加到 script 标记中的一个JavaScript文件的网址,但是这些标记会自动添加我建立。

1 个答案:

答案 0 :(得分:3)

当您使用“ng build --prod”或“ng build --output-hashing = all”命令时,角度CLI将使用新的散列文件名构建您的应用程序(通常位于“dist”文件夹中)。用户浏览器会将其识别为新文件并自动下载新版本。

编辑:
我已对我的一个旧项目进行了快速测试并查看结果: ng build has test

我在ts文件中只更改了一行,并且更改了两个bundle.js散列文件。 css和供应商保持不变。因此对于浏览器来说,这意味着它是一个全新的文件。确实,如果使用旧引用对index.html进行浏览器缓存,仍会从缓存中加载旧的引用 我在某个地方看到人们弹出窗口提示有新版本可用并鼓励用户刷新页面。我想这可以用ajax调用API来请求最新版本并将其与存储在js文件中的版本进行比较 - 只是一个想法。