Я использую файл serviceWorker.js
, созданный с использованием create-react-app
, с целью показать пользовательскую автономную страницу пользователю, когда пользователь находится в автономном режиме. Когда я регистрирую serviceWorker, единственное, что я кеширую, это файл изображения. Кажется, все работает, находи и пользуйся, пока я не начну делать HTTP-запросы к своему бэкэнд-API. В частности, я получаю 404 error not found
, когда пытаюсь получить доступ к этим бэкэнд-API.
Я также использую workbox
для генерации своего таможенного работника. Вот мой шаблон:
/* eslint-disable */
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.1.0/workbox-sw.js");
const precacheManifest = [];
workbox.precaching.precacheAndRoute(precacheManifest);
const htmlStr = `
<html>
...
</html>
`;
this.addEventListener('fetch', (event) => {
event.respondWith(
fetch(event.request.url).catch(() => {
// Return custom the offline page
if (navigator && !navigator.isOnline) {
return new Response(htmlStr, {
headers: {'Content-Type': 'text/html'}
});
}
})
);
});
Так что я думаю, что происходит странная вещь. Пожалуйста, имейте мое объяснение:
Итак, когда я впервые захожу на домен моей веб-страницы, он регистрирует работника сервиса:
Когда я обновляю страницу, вдруг все выглядит так, будто мои работники службы выдают ошибки?
Обратите внимание на красный крестик ошибки. Я нажимаю на нее, чтобы увидеть ошибку, но она ничего не показывает. Кроме того, я также заметил, что когда сервисные работники выдают подобные ошибки, мои почтовые запросы перестают работать. Другими словами, когда я не обновляю страницу и не возникает ошибки, почтовые запросы работают так, как должны. Есть идеи, что происходит?