我在我们的应用程序中使用Angular-CLI 1.6.6
and 。除了在我们的生产环境中弹出一条错误消息外,在本地 lite-server 和生产服务器上一切正常:@angular/service-worker 5.2.5
Angular 5.2.5
加载资源失败:服务器响应状态为 504(网关超时)
查看ngsw-worker.js
脚本,我发现生成上述错误消息的行(以下 2466 行):
async safeFetch(req) {
try {
return await this.scope.fetch(req);
}
catch (err) {
this.debugger.log(err, `Driver.fetch(${req.url})`);
return this.adapter.newResponse(null, {
status: 504,
statusText: 'Gateway Timeout',
});
}
}
catch 中的控制台日志记录错误会显示以下错误:
TypeError: Failed to execute 'fetch' on 'ServiceWorkerGlobalScope': 'only-if-cached' can be set only with 'same-origin' mode
at Driver.safeFetch (ngsw-worker.js:2464)
at Driver.handleFetch (ngsw-worker.js:1954)
at <anonymous>
似乎与此问题相关的错误:是什么导致无法在“ServiceWorkerGlobalScope”上执行“获取”:“仅当缓存”只能设置为“同源”模式错误?
生成此错误的请求是对应用程序的任何首次访问:
https://example.com/test/#/connect
https://example.com/test/#/map?token=[accestoken]
...
在应用程序重新加载时,错误不会重复。
有人可以帮我吗?服务工作者是否存在错误safeFetch()
(可能支持 HashLocationStrategy)?我必须更改配置中的任何内容吗?