Update caching headers to ensure all devices get the latest site version
Modify Nginx configuration to include aggressive caching headers for service worker and index.html to prevent stale content on various devices. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 77cfe984-2c65-4152-bb7a-0df28274fe66 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 5c11d21b-1972-4651-a7a2-5deab7b263d1 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/c3c252e4-c83d-40ca-9fff-99a3ea60701e/77cfe984-2c65-4152-bb7a-0df28274fe66/IO8TMSC Replit-Helium-Checkpoint-Created: true
This commit is contained in:
+19
-2
@@ -43,11 +43,28 @@ server {
|
||||
try_files $uri =404;
|
||||
}
|
||||
|
||||
# SPA fallback — every unknown path returns index.html
|
||||
# Service worker MUST never be cached so we can ship SW updates.
|
||||
# Safari/iOS especially clings to old sw.js otherwise.
|
||||
location = /sw.js {
|
||||
root /usr/share/nginx/html;
|
||||
add_header Cache-Control "no-store, no-cache, must-revalidate, max-age=0";
|
||||
add_header Pragma "no-cache";
|
||||
add_header Expires "0";
|
||||
try_files $uri =404;
|
||||
}
|
||||
|
||||
# SPA fallback — every unknown path returns index.html.
|
||||
# `no-cache` alone is unreliable on iOS Safari (sometimes the browser
|
||||
# serves a stale copy after a deploy). Pair it with `no-store` + the
|
||||
# legacy `Pragma`/`Expires` headers so every device — phones, iPads,
|
||||
# laptops — re-fetches index.html and picks up the freshly-hashed
|
||||
# assets/*.js bundle on every navigation.
|
||||
location / {
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
try_files $uri $uri/ /index.html;
|
||||
add_header Cache-Control "no-cache";
|
||||
add_header Cache-Control "no-store, no-cache, must-revalidate, max-age=0";
|
||||
add_header Pragma "no-cache";
|
||||
add_header Expires "0";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user