6

我们的应用程序使用 node.js Core & Angular 7.2 版

我们经常推出 Angular 应用程序的生产版本,以在一个月内部署 3-4 次更改。

我收到了一些客户的投诉,他们无法看到更改,除非他们清除缓存或在浏览器中重新加载页面。

我认为ng build --prod创建了唯一的哈希,所以它可以处理缓存破坏,但它似乎没有发生。

angular.json我有以下用于生产构建的配置

"production": {
  "optimization": true,
  "outputHashing": "all",
  "sourceMap": false,
  "extractCss": true,
  "namedChunks": false,
  "aot": true,
  "extractLicenses": false,
  "vendorChunk": false,
  "buildOptimizer": true,
  "fileReplacements": [
    {
      "replace": "src/environments/environment.ts",
      "with": "src/environments/environment.prod.ts"
    }
   ]
}

运行后ng build --prod它会生成散列文件,并且根据更改与以前的版本不同。另外,我已将服务器配置为不缓存index.html。那么为什么有时用户需要硬重新加载页面或手动清除缓存以获取最新更改?

除了告诉客户清除他们的缓存之外,我还有什么办法可以解决这个问题?

任何建议将不胜感激。

4

1 回答 1

0

角旧版本:

ng build --prod --aot --output-hashing=all

对于较新版本的 Angular(例如 Angular 10),该命令现在已更新:

ng build --prod --aot --outputHashing=all
于 2021-07-25T04:22:14.520 回答