我们有一个Angular 6应用程序。它在Nginx上提供。并且SSL已启用。
当我们部署新代码时,大多数新功能都可以正常工作,但不能进行某些更改。例如,如果前端开发人员更新服务连接并进行部署,则用户必须打开隐身窗口或清除缓存以查看新功能。
什么类型的更改不会自动更新?为什么他们与其他人不同?
避免这个问题的常见解决方案是什么?
问题是当静态文件被缓存时,它可以在它结束到期之前存储很长一段时间。如果您对网站进行更新,这可能会令人烦恼,因为文件的缓存版本存储在访问者的浏览器中,他们可能无法看到所做的更改。
Cache-busting通过使用唯一的文件版本标识符来告诉浏览器该文件的新版本可用,从而解决了浏览器缓存问题。因此,浏览器不会从缓存中检索旧文件,而是向源服务器请求新文件。
Angular cli通过为build命令提供--output-hashing
标志来解决这个问题。
查看官方文档:https://angular.io/cli/build
例
ng build --aot --output-hashing=all
以下是您可以在--output-hashing
中传递的选项