diff --git a/site/public/sw.js b/site/public/sw.js index caf9a3a..fa5ecde 100644 --- a/site/public/sw.js +++ b/site/public/sw.js @@ -5,7 +5,7 @@ */ // Bump this value on deploy to invalidate caches. -const CACHE_VERSION = "v3"; +const CACHE_VERSION = "v4"; const CACHE_SHELL = `shell-${CACHE_VERSION}`; const CACHE_PAGES = `pages-${CACHE_VERSION}`; @@ -13,6 +13,9 @@ const CACHE_MEDIA = `media-${CACHE_VERSION}`; const SHELL_ASSETS = ["/", "/styles/global.css", "/favicon.png", "/robots.txt"]; +// Cache.addAll() throws if there are any duplicate requests. +const SHELL_ASSETS_UNIQUE = Array.from(new Set(SHELL_ASSETS)); + // Keep media cache bounded so we don't grow indefinitely. const MAX_MEDIA_ENTRIES = 80; @@ -58,7 +61,7 @@ self.addEventListener("install", (event) => { event.waitUntil( (async () => { const cache = await caches.open(CACHE_SHELL); - await cache.addAll(SHELL_ASSETS); + await cache.addAll(SHELL_ASSETS_UNIQUE); // Activate new worker ASAP to pick up new caching rules. await self.skipWaiting(); })(),