Я пытался создать прогрессивное Django Web App с сервисным работником и django-pwa . Кажется, все работает нормально, но всякий раз, когда я загружаю страницу, включаю автономный режим в Chrome и перезагружаюсь, я получаю эту ошибку:
«Событие FetchEvent для» https://haverford.getdibs.app/login/?redirect_to=/dashboard/" привело к ответу об ошибке сети: перенаправленный ответ использовался для запроса, режим перенаправления которого не «следует».
Теперь я видел, что кто-то другой столкнулся с, казалось бы, похожей проблемой здесь , но я не совсем понимаю, что происходит в ответе. Я думаю, что мне нужно установить режим перенаправления «следовать» для запроса, который я делаю с моей выборкой, но я не уверен, как это сделать.
Вот мой работник службы:
var staticCacheName = "django-pwa-v" + new Date().getTime();
var filesToCache = [
'/offline',
];
// Cache on install
self.addEventListener("install", event => {
this.skipWaiting();
event.waitUntil(
caches.open(staticCacheName)
.then(cache => {
return cache.addAll(filesToCache);
})
)
});
// Clear cache on activate
self.addEventListener('activate', event => {
event.waitUntil(
caches.keys().then(cacheNames => {
return Promise.all(
cacheNames
.filter(cacheName => (cacheName.startsWith("django-pwa-")))
.filter(cacheName => (cacheName !== staticCacheName))
.map(cacheName => caches.delete(cacheName))
);
})
);
});
// Serve from Cache
self.addEventListener("fetch", event => {
event.respondWith(
caches.match(event.request)
.then(response => {
return response || fetch(event.request);
})
.catch(() => {
return caches.match('offline');
})
)
});
У меня сложилось впечатление, что я каким-то образом должен заставить режим перенаправления event.request 'следовать', но когда я ставлю точку останова в этой строке и проверяю объект event.request, его redirect
устанавливается в 'manual'
. Как бы я изменил это?
Любая помощь в моем стремлении понять, в чем проблема на самом деле, будет высоко ценится.
Спасибо.