diff --git a/frontend/public/sw.js b/frontend/public/sw.js index 8309685..f654ce0 100644 --- a/frontend/public/sw.js +++ b/frontend/public/sw.js @@ -1,5 +1,5 @@ // Service Worker v4 – garantiert frische index.html, Auto-Reload bei neuem Build -const VERSION = 'v4'; +const VERSION = 'v5'; const CACHE_NAME = 'dickendock-' + VERSION; self.addEventListener('install', () => { @@ -21,23 +21,26 @@ self.addEventListener('activate', e => { self.addEventListener('fetch', e => { const url = new URL(e.request.url); + // Cross-Origin-Requests (externe Bilder, Fonts usw.) NICHT abfangen + // → Browser verarbeitet sie normal, kein CORS-Problem in der PWA + if (url.origin !== self.location.origin) return; + // API immer direkt ans Netz if (url.pathname.startsWith('/api/')) { e.respondWith(fetch(e.request)); return; } - // HTML-Navigation: IMMER frisch vom Netzwerk, niemals aus Cache - // (Vite-Bundles haben Hash im Namen → neue index.html lädt neue Bundles) + // HTML-Navigation: IMMER frisch vom Netzwerk if (e.request.mode === 'navigate') { e.respondWith( - fetch(e.request, { cache: 'reload' }) // 'reload' = HTTP-Cache komplett umgehen + fetch(e.request, { cache: 'reload' }) .catch(() => caches.match('/index.html')) ); return; } - // Restliche Assets: einfach durchreichen + // Same-Origin Assets: durchreichen e.respondWith(fetch(e.request).catch(() => caches.match(e.request))); });