Я создал SPA (одностраничное приложение) с Create-React-App. Я добавил к нему работника сервиса, чтобы SPA мог загружаться, когда нет сетевого подключения. Работник службы успешно кэширует все ресурсы, но не отвечает на запросы при отсутствии сетевого подключения. Я перепробовал много вещей, но просто не мог заставить его обслуживать ресурсы, чтобы получить офлайн-возможности. Выдается следующее сообщение об ошибке:
Uncaught (в обещании) TypeError: Не удалось получить
Мой работник службы успешно регистрируется, а также успешно кэширует активы. Код сервисного работника:
const thingsToCache = [
'index.html',
'static/js/1.cb2fedf5.chunk.js',
'static/js/main.5e7fdc75.chunk.js',
'static/js/runtime~main.229c360f.js',
'static/css/main.ca6d346b.chunk.css',
'static/media/roboto.18d44f79.ttf',
'static/media/comfortaa.7d0400b7.ttf',
];
this.addEventListener('install', event => {
event.waitUntil(
caches.open('v1').then(cache => {
return cache.addAll(thingsToCache);
})
);
});
this.addEventListener('fetch', event => {
//respond to fetch requests here
caches
.match(event.request)
.then(cachedRes => {
if (cachedRes) {
event.respondWith(cachedRes);
} else {
throw new Error('No match found in cache!');
}
})
.catch(() => {
return fetch(event.request);
});
});
Если вам нужны активы, то вот ссылка:
https://github.com/Twaha-Rahman/pwa-problem-assets
Спасибо за все ваши помощь!