代码之家  ›  专栏  ›  技术社区  ›  Stephen Oberauer

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

  •  6
  • Stephen Oberauer  · 技术社区  · 7 年前

    我正在使用Angular CLI创建一个应用程序。

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

    我想我可以做一些像追加 ?v=1 指向 剧本 标记,但这些标记在生成时自动添加。

    1 回复  |  直到 7 年前
        1
  •  5
  •   KrystianC    7 年前

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

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

    我只更改了ts文件中的一行和两个包。js哈希文件已更改。css和供应商保持不变。所以对于浏览器来说,这意味着它是一个全新的文件。确实,如果浏览器缓存索引。带有旧引用的html仍将从缓存中加载旧引用。

    我在某处看到,人们会弹出提示,有一个新版本可用,并鼓励用户刷新页面。我想这可以通过ajax调用API来实现,以获取最新版本,并将其与js文件中存储的版本进行比较——这只是一个想法。