diff --git a/packages/sw/src/sw.ts b/packages/sw/src/sw.ts index 872692f90..92391f1fb 100644 --- a/packages/sw/src/sw.ts +++ b/packages/sw/src/sw.ts @@ -24,6 +24,16 @@ self.addEventListener('activate', ev => { }); self.addEventListener('fetch', ev => { + let isHTMLRequest = false; + if (ev.request.headers.get('sec-fetch-dest') === 'document') { + isHTMLRequest = true; + } else if (ev.request.headers.get('accept')?.includes('/html')) { + isHTMLRequest = true; + } else if (ev.request.url.endsWith('/')) { + isHTMLRequest = true; + } + + if (!isHTMLRequest) return; ev.respondWith( fetch(ev.request) .catch(() => new Response(`Offline. Service Worker @${_VERSION_}`, { status: 200 }))