Angular Service Worker-无法加载资源:服务器响应状态为504(网关超时)


83

我在我们的应用程序中使用Angular-CLI 1.6.6和。除了在我们的生产环境中弹出一条错误消息外,一切都可以在本地lite服务器和生产服务器上正常运行:@angular/service-worker 5.2.5Angular 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)?我是否需要更改配置中的任何内容?


9
似乎很多人都面临这个问题。github.com/angular/angular/issues/20756 github.com/angular/angular/issues/20970等。并不是什么帮助,但似乎是根据有角度的服务工作者项目来研究的:github.com / angular / angular / projects / 13
sje

1
请提供完整的来源(或者更好的是,请进行堆栈闪电:)
yomateo

您可以从“网络”标签中提供一个屏幕截图,以显示504吗?
Daniel Habenicht '18

2
这个问题上做一些工作。@tobik这还是个问题吗?
Joniras

Answers:


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.