我的生产项目中当前的服务人员遇到问题。基本上,服务器在apache上运行。每当我建立项目时
使用ng build --aot --build-optimizer --prod
并上传并替换服务器上dist文件夹中dist文件夹中的所有文件,除非我在浏览器中完全清除了缓存,然后加载了最新版本,否则服务人员不会更新我的新版本。
我的问题是上传期间我做错了什么吗?还是服务人员自己解决问题?
据我了解,Service Worker使用ngsw.json比较新版本和旧版本之间的哈希值,但是由于我要完全删除文件并上传所有新文件,因此这意味着Service Worker拥有一些缓存的ngsw文件以进行比较,或者我错了吗?
我还在app.component.ts中添加了以下代码,以跟踪版本更新是触发还是不触发,但是我从未在控制台中获得任何输出。
constructor(private router: Router, public swUpdate: SwUpdate) {}
ngOnInit() {
this.swUpdate.available.subscribe(event => {
console.log(`%c A newer version is now available. Refresh the page now to update the cache`, "background: black; color: red");
this.update = true;
this.swUpdate.activateUpdate().then(() => document.location.reload());
});
this.swUpdate.checkForUpdate();
}