【问题标题】:Force browser to clear cache in Angular environment强制浏览器在 Angular 环境中清除缓存
【发布时间】:2017-12-14 14:55:03
【问题描述】:

关于如何在 VanillaJS 应用程序中强制清除浏览器缓存有一个流行的问题,普遍的共识是,将 .js 脚本的名称或脚本参数设置为新值:@987654321 @

如何使用 Angular(AngularCLI/Webpack 构建中目前为 5.1)实现这一点,所以每次我在生产中(使用 AOT)发布代码时,都会构建一个新版本?我会使用日期散列而不是索引,但主要问题是:我可以在哪里设置它(例如脚本名称/参数)?在开发中,CLI 负责重建应用程序,这不是问题,只是在生产中!

【问题讨论】:

标签: javascript angular caching cache-invalidation


【解决方案1】:

通过将构建命令设置为目标生产ng build --target=production,cli 会自动散列您的 js 文件。这里是docs 如果你想在开发者ng build --output-hashing=all 上手动设置命令,你也可以手动设置@

【讨论】:

  • 谢谢。我已经进行了更改,但需要先检查它是否有效,之后会接受您的回答:)
  • 但是如何强制浏览器在创建新版本时也刷新资产文件?
  • @CularBytes 看起来 Angular cli 不会散列所有资产(请参阅此 thread)。您也许可以更新 webpack 配置以查找您的资产 url 并添加哈希或创建添加哈希的管道。 (例如,假设您有一个管道,它拉入您的 package.json 版本并将其附加到 url。每次更新版本并部署资产时,缓存都会被破坏)
猜你喜欢
  • 2016-02-18
  • 2016-10-01
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
相关资源
最近更新 更多