# PWA installability - required for Install (not just Add to Home Screen) on Android # Manifest MUST be served with application/manifest+json - Chrome rejects otherwise location = /manifest.webmanifest { default_type application/manifest+json; add_header Cache-Control "public, max-age=0, must-revalidate"; } # Service worker - no cache so updates apply location ~ ^/(sw\.js|workbox-.*\.js|registerSW\.js)$ { add_header Content-Type application/javascript; add_header Service-Worker-Allowed /; add_header Cache-Control "no-cache, no-store, must-revalidate"; } # index.html - avoid aggressive cache for PWA updates location = /index.html { add_header Cache-Control "public, max-age=0, must-revalidate"; }