我在我们的应用程序中使用Angular-CLI 1.6.6
和。除了在我们的生产环境中弹出一条错误消息外,一切都可以在本地lite服务器和生产服务器上正常运行:@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',
});
}
}
捕获中的控制台日志错误er发出以下错误:
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'上执行'fetch'的原因:只能在'same-origin'模式错误下设置'only-if-cached'?
产生此错误的要求是对该应用程序的任何首次访问:
https://example.com/test/#/connect
https://example.com/test/#/map?token=[accestoken]
...
在应用程序重新加载时,错误不会重复。
有人可以帮我吗?safeFetch()
服务工作者是否存在错误(可能支持HashLocationStrategy)?我是否需要更改配置中的任何内容?