Fix cache headers: immutable for hashed assets, revalidate for HTML

The blanket max-age=3600 caused stale HTML pages after redeployment.
Now _astro/* gets immutable (content-addressed filenames) and HTML
pages get no-cache (always revalidate, 304 when unchanged).
This commit is contained in:
Ryan Malloy 2026-02-24 11:16:58 -07:00
parent 83493afdc7
commit 04a17899fc

View File

@ -2,6 +2,14 @@
root * /srv
file_server
encode gzip zstd
header Cache-Control "public, max-age=3600"
# Hashed assets: cache forever (filename changes on content change)
@hashed path /_astro/*
header @hashed Cache-Control "public, max-age=31536000, immutable"
# Everything else (HTML pages): always revalidate
@unhashed not path /_astro/*
header @unhashed Cache-Control "no-cache"
try_files {path} {path}/ /404.html
}