Ben kullanıyorum Angular-CLI 1.6.6
ve @angular/service-worker 5.2.5
bizim de Angular 5.2.5
app. Üretim ortamımızda çıkan bir hata mesajı dışında, her şey yerel lite sunucusunda ve üretim sunucusunda sorunsuz çalışır:
Kaynak yüklenemedi: sunucu, 504 (Ağ Geçidi Zaman Aşımı) durumuyla yanıt verdi
ngsw-worker.js
Komut dosyasına baktığımda, yukarıdaki hata mesajının oluşturulduğu satırları (aşağıdaki 2466) buldum:
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',
});
}
}
Yakalamadaki konsol günlüğü hatası aşağıdaki hatayı ortaya çıkarır:
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>
Bu soruyla ilgili görünen bir hata: 'ServiceWorkerGlobalScope' üzerinde 'getirme' yapılamamasına neden olan şey: 'sadece önbelleğe alınmışsa' yalnızca 'aynı-orijinli' mod hatasıyla ayarlanabilir?
Bu hatayı oluşturan istek, uygulamaya herhangi bir ilk erişimdir:
https://example.com/test/#/connect
https://example.com/test/#/map?token=[accestoken]
...
Uygulama yeniden yüklendiğinde hata tekrarlanmaz.
Biri bana yardım edebilir mi? safeFetch()
Hizmet çalışanında bir hata var mı (belki HashLocationStrategy'yi desteklemek için)? Yapılandırmamdaki herhangi bir şeyi değiştirmem gerekiyor mu?