У меня проблема: я могу кешировать все запросы в кеше браузера, используя сервисный работник с ключом «test-cache»
ниже код моего работника службы
importScripts(
"https://storage.googleapis.com/workbox-cdn/releases/3.6.3/workbox-sw.js"
);
importScripts("precache-manifest.9d2e799ef79d895c26b690a7dfad32c3.js");
workbox.clientsClaim();
self.__precacheManifest = [].concat(self.__precacheManifest || []);
workbox.precaching.suppressWarnings();
workbox.precaching.precacheAndRoute(self.__precacheManifest, {});
workbox.routing.registerNavigationRoute("https://myurl.com/test", {});
self.addEventListener("activate", event => {
event.waitUntil(
(async function() {
const cacheNames = await caches.keys();
await Promise.all(
cacheNames
.filter(cacheName => {
// Return true if you want to remove this cache,
// but remember that caches are shared across
// the whole origin
})
.map(cacheName => caches.delete(cacheName))
);
})()
);
});
self.addEventListener("install", e => {
e.waitUntil(
// after the service worker is installed,
// open a new cache
caches.open("test-cache").then(cache => {
// add all URLs of resources we want to cache
return cache.addAll([
"/wp-content/plugins/woo-test/templates/index.html",
"/wp-content/plugins/woo-test/static/css/2.82f81fb6.chunk.css",
"/wp-content/plugins/woo-test/static/css/main.17dd7fa1.chunk.css",
"/wp-content/plugins/woo-test/static/js/2.de55d337.chunk.js",
"/wp-content/plugins/woo-test/static/js/main.b4a4b6e6.chunk.js"
]);
})
);
});
addEventListener("fetch", function(event) {
event.respondWith(
caches.match(event.request).then(function(response) {
if (response) {
return response; // if valid response is found in cache return it
} else {
return fetch(event.request) //fetch from internet
.then(function(res) {
return caches.open("test-cache").then(function(cache) {
cache.put(event.request.url, res.clone()); //save the response for future
return res; // return the fetched data
});
})
.catch(function(err) {
// fallback mechanism
console.log("err");
console.log(err);
return caches.open("test-error").then(function(cache) {
return cache.match("/offline.html");
});
});
}
})
);
});
Как вы можете видеть выше, при настройке браузера в автономном режиме я получил «только если кэшировано», можно установить только с «тем же источником», кто-нибудь знает, как решить эту проблему. я работаю на местном