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