我最近将 angular 从 v6 更新到 v11。应用程序以生产模式构建为 SSR 应用程序。它部署为 docker 镜像。在我的测试环境(没有 SSL)和沙箱环境(有 SSL)中一切正常,但在我的生产环境中存在很多服务器错误,例如:
ERROR HttpErrorResponse {
4/21/2021 10:14:30 PM headers:
4/21/2021 10:14:30 PM HttpHeaders {
4/21/2021 10:14:30 PM normalizedNames: Map {},
4/21/2021 10:14:30 PM lazyUpdate: null,
4/21/2021 10:14:30 PM lazyInit: [Function] },
4/21/2021 10:14:30 PM status: 404,
4/21/2021 10:14:30 PM statusText: 'Not Found',
4/21/2021 10:14:30 PM url: 'http://(...)/assets/i18n/en.json (.css files and js bundles as well)',
4/21/2021 10:14:30 PM ok: false,
4/21/2021 10:14:30 PM name: 'HttpErrorResponse',
我可能错了,但它似乎与 service worker 和缓存有某种联系。我的浏览器在第一次尝试打开应用程序后会自动更新 Service Worker,但对于所有其他客户端可能效果不佳(取决于浏览器?浏览器的版本)?
我添加了处理不可恢复资产事件(也可用事件)
this.swUpdate.unrecoverable.subscribe(event => {
window.location.reload();
});
`
但不幸的是没有任何变化。
我想问一下,我是不是应该等下一个 24 小时? Aas 我记得更新 sw 可能需要 24 小时,或者我还能做些什么?也许这根本与 sw 无关?我只是不明白为什么它对我和我公司的其他开发人员(在沙箱环境中)很有效,但是在 prod env(基本上是沙箱的副本)中有很多错误(但应用程序加载正确,只是服务器错误)。