Tôi đang sử dụng Angular-CLI 1.6.6
và @angular/service-worker 5.2.5
trong Angular 5.2.5
ứng dụng của chúng tôi . Mọi thứ hoạt động tốt trên máy chủ lite cục bộ cũng như trên máy chủ sản xuất, ngoại trừ một thông báo lỗi xuất hiện trong môi trường sản xuất của chúng tôi:
Không tải được tài nguyên: máy chủ đã phản hồi với trạng thái 504 (Gateway Timeout)
Nhìn vào ngsw-worker.js
tập lệnh, tôi tìm thấy các dòng (2466 sau) nơi thông báo lỗi ở trên được tạo:
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',
});
}
}
Lỗi ghi nhật ký bảng điều khiển trong lần bắt gây ra lỗi sau:
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>
Một lỗi có vẻ liên quan đến câu hỏi này: Điều gì gây ra Lỗi không thực hiện được 'tìm nạp' trên 'ServiceWorkerGlobalScope': chỉ có thể đặt 'only-if-cache' với lỗi chế độ 'same-origin'?
Yêu cầu tạo ra lỗi này là bất kỳ quyền truy cập đầu tiên nào vào ứng dụng:
https://example.com/test/#/connect
https://example.com/test/#/map?token=[accestoken]
...
Khi tải lại ứng dụng, lỗi không lặp lại.
Ai có thể giúp tôi thoát khỏi đây không? Có lỗi trong safeFetch()
service worker (có thể để hỗ trợ HashLocationStrategy) không? Tôi có phải thay đổi gì trong cấu hình của mình không?