Angular app必须在新部署后清除缓存

问题描述 投票:1回答:1

我们有一个Angular 6应用程序。它在Nginx上提供。并且SSL已启用。

当我们部署新代码时,大多数新功能都可以正常工作,但不能进行某些更改。例如,如果前端开发人员更新服务连接并进行部署,则用户必须打开隐身窗口或清除缓存以查看新功能。

什么类型的更改不会自动更新?为什么他们与其他人不同?

避免这个问题的常见解决方案是什么?

javascript angular nginx deployment
1个回答
3
投票

问题是当静态文件被缓存时,它可以在它结束到期之前存储很长一段时间。如果您对网站进行更新,这可能会令人烦恼,因为文件的缓存版本存储在访问者的浏览器中,他们可能无法看到所做的更改。

Cache-busting通过使用唯一的文件版本标识符来告诉浏览器该文件的新版本可用,从而解决了浏览器缓存问题。因此,浏览器不会从缓存中检索旧文件,而是向源服务器请求新文件。

Angular cli通过为build命令提供--output-hashing标志来解决这个问题。

查看官方文档:https://angular.io/cli/build

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

以下是您可以在--output-hashing中传递的选项

  • none:没有执行散列
  • media:只为通过[url | file] -loaders处理的文件添加哈希值
  • bundle:只为输出包添加哈希值
  • all:为媒体和包添加哈希值
© www.soinside.com 2019 - 2024. All rights reserved.