PWA: dyplenke feiler ved kald førstelast — relativ shelters.json-sti løses under /shelter/ #19

Closed
opened 2026-08-17 12:48:56 +02:00 by olemd · 1 comment
Owner

Symptom

Første gang en bruker åpner en delt dyplenke (/shelter/{romnr}) i en nettleser som ikke har besøkt appen før, vises «Fant ikke tilfluktsrommet» og lista er tom. Dyplenker virker bare for brukere som allerede har shelters.json i IndexedDB.

Årsak

pwa/src/data/shelter-repository.ts bruker en relativ sti:

const SHELTERS_JSON_PATH = './data/shelters.json';

Under /shelter/1681 løses den til /shelter/data/shelters.json. SPA-fallback (både vite dev og produksjons-hosting med navigateFallback: 'index.html') svarer med index.html (200, text/html) → response.json() kaster → refreshData() returnerer false → loadData() avbryter før handleDeepLink().

Reprodusert i vite dev: curl -w '%{content_type}' http://localhost:5179/shelter/data/shelters.json200 text/html.

Fiks

Bruk absolutt sti forankret i Vite sin import.meta.env.BASE_URL ('/' i vite.config.ts), slik at URL-en er /data/shelters.json uansett hvilken rute appen startes fra. Det matcher også hva Workbox precacher.

Ut av skopet

Selve dyplenke-oppførselen i lista (#17).

## Symptom Første gang en bruker åpner en delt dyplenke (`/shelter/{romnr}`) i en nettleser som ikke har besøkt appen før, vises «Fant ikke tilfluktsrommet» og lista er tom. Dyplenker virker bare for brukere som allerede har `shelters.json` i IndexedDB. ## Årsak `pwa/src/data/shelter-repository.ts` bruker en **relativ** sti: ```ts const SHELTERS_JSON_PATH = './data/shelters.json'; ``` Under `/shelter/1681` løses den til `/shelter/data/shelters.json`. SPA-fallback (både vite dev og produksjons-hosting med `navigateFallback: 'index.html'`) svarer med `index.html` (200, text/html) → `response.json()` kaster → `refreshData()` returnerer false → `loadData()` avbryter før `handleDeepLink()`. Reprodusert i vite dev: `curl -w '%{content_type}' http://localhost:5179/shelter/data/shelters.json` → `200 text/html`. ## Fiks Bruk absolutt sti forankret i Vite sin `import.meta.env.BASE_URL` (`'/'` i vite.config.ts), slik at URL-en er `/data/shelters.json` uansett hvilken rute appen startes fra. Det matcher også hva Workbox precacher. ## Ut av skopet Selve dyplenke-oppførselen i lista (#17).
Author
Owner

Fikset i 2a0c9b4 (BASE_URL-forankret shelters.json-sti, absolutte manifest/ikon-lenker, start_url/scope "/"). Verifisert kald førstelast i ny nettleserkontekst.

Fikset i 2a0c9b4 (BASE_URL-forankret shelters.json-sti, absolutte manifest/ikon-lenker, start_url/scope "/"). Verifisert kald førstelast i ny nettleserkontekst.
olemd closed this issue 2026-08-17 12:51:36 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
olemd/tilfluktsrom#19
No description provided.