diff --git a/infra/docker/nginx/nginx-frontend.conf b/infra/docker/nginx/nginx-frontend.conf index 7ddaa56..6b1c57d 100644 --- a/infra/docker/nginx/nginx-frontend.conf +++ b/infra/docker/nginx/nginx-frontend.conf @@ -1,4 +1,4 @@ -# Nginx config for serving Astro-built static frontend files +# Nginx config for serving Vite-built static frontend files server { listen 3000; server_name _; @@ -11,15 +11,14 @@ server { gzip_types text/plain text/css application/json application/javascript image/svg+xml; gzip_min_length 256; - # Cache Astro hashed assets (/_astro/) — immutable since hash changes - location /_astro/ { + # Cache static assets (JS/CSS hashed filenames) + location /assets/ { expires 1y; add_header Cache-Control "public, immutable"; } - # Astro SSG pages — each route is a real directory with index.html - # Fallback to 404 instead of index.html (no SPA catch-all) + # SPA fallback — all non-file routes serve index.html location / { - try_files $uri $uri/ =404; + try_files $uri $uri/ /index.html; } }