У меня есть приложение React
, созданное с помощью create-react-app
.По умолчанию этот инструмент создает для нас файл serviceWorker.js
, и я использую его для регистрации service-worker
.Кроме того, в документах предлагается использовать Google workbox wizard
для создания service-worker.js
, используемого для управления моим сайтом в автономных целях.Цель состоит в том, чтобы я сохранил страницу offline.html
в кэше браузеров, и всякий раз, когда отсутствует онлайн-соединение, визуализирую кэшированную страницу offline.html
.
Я успешно храню offline.html
в кэше каквы можете увидеть ниже.
Однако у меня возникают проблемы с захватом этого файла и рендерингом, когда нет соединения.Вот мой код:
workbox-config.js
:
module.exports = {
"globDirectory": "build-development/",
"globPatterns": [
".offline/*.html",
"external/logo_purple.png"
],
"swDest": "build-development/sw.js",
"swSrc": "src/sw.js",
"injectionPointRegexp": /(const precacheManifest = )\[\](;)/
};
sw.js (created by running the workbox config)
:
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.1.0/workbox-sw.js");
const precacheManifest = [];
workbox.precaching.precacheAndRoute(precacheManifest);
const dataCacheConfig = {
cacheName: 'offline'
};
workbox.routing.registerRoute("http://localhost:4000/.offline/offline.html", workbox.strategies.cacheFirst(dataCacheConfig), 'GET');
Есть идеи?