diff --git a/.changeset/caddy-cache-headers.md b/.changeset/caddy-cache-headers.md new file mode 100644 index 000000000..498db7463 --- /dev/null +++ b/.changeset/caddy-cache-headers.md @@ -0,0 +1,5 @@ +--- +default: patch +--- + +Add cache-control headers in Caddyfile for assets, service worker, and index.html diff --git a/Caddyfile b/Caddyfile index 63fec50e6..d32ef3bb9 100644 --- a/Caddyfile +++ b/Caddyfile @@ -16,6 +16,13 @@ try_files {path} /index.html + # Content-hashed assets can be cached indefinitely — the filename changes on every build. + header /assets/* Cache-Control "public, max-age=31536000, immutable" + # Workbox SW must be revalidated on every load so the browser picks up updates. + header /sw.js Cache-Control "no-cache" + # index.html must not be cached so the browser always gets the latest app shell. + header /index.html Cache-Control "no-cache" + # Required for Sentry browser profiling (JS Self-Profiling API) header Document-Policy "js-profiling" }