Я работаю над проектом на стороне PWA, поэтому, когда я предварительно кэширую модуль типа сценария, браузер не может извлечь сценарий в автономном режиме, но когда я использую другую стратегию для кэширования, т.е. «при ответе по сети; возврат из кэша, если совпадение найдено, или добавление в кэш» работает нормально в автономном режиме.
self.addEventListener('fetch', e => {
e.respondWith(
caches.open(cacheVersion)
.then(cache => cache.match(e.request)
.then(res => res || fetch(e.request)
.then(res => {
cache.put(e.request, res.clone());
return res;
}).catch(err => {
console.log('Fetch failed');
})
)
)
);
});
Браузер не может извлечь скрипт, когда я использую следующую стратегию извлечения
e.respondWith(
fetch(e.request)
.catch(() => caches.match(e.request))
);
Вот как я проповедую свои активы при использовании этой стратегии
cache.addAll([
'/',
'/style.css',
'/src/app.js',
'/src/router/index.js',
'/src/router/Route.js',
'/src/router/Router.js',
'/src/views/home.js',
'/src/views/offline.js',
'/src/views/post.js'
]);
Это все файлы модуля javascript, где app.js является основным файлом ввода
<script src="src/app.js" type="module"></script>
Если вам нужен полный исходный код, вы можете найти его по ссылке ниже
https://github.com/vijitail/headless-wordpress-pwa