Sto servendo un'applicazione JavaScript di una sola pagina tramite nginx e quando distribuisco la nuova versione, voglio forzare i browser a invalidare la cache JS e richiedere/utilizzare la versione più recente a disposizione.Scaduta la cache delle risorse nei browser quando si sostituisce il file server impresso via nginx
Così, per esempio, quando ho sostituire un file sul dispositivo di piegatura del server, denominato my-app-8e8faf9.js
, con un file chiamato my-app-eaea342.js
, non voglio browser per tirare my-app-8e8faf9.js
dal loro nascondiglio più. Ma quando non c'è una nuova versione disponibile, voglio comunque che leggano le risorse dalla cache.
Come ottengo ciò con la configurazione di nginx? Questa è la mia configurazione attuale:
server {
listen 80;
server_name my.server.com;
root /u/apps/my_client_production/current;
index index.html;
# ~2 seconds is often enough for most folks to parse HTML/CSS and
# retrieve needed images/icons/frames, connections are cheap in
# nginx so increasing this is generally safe...
keepalive_timeout 10;
client_max_body_size 100M;
access_log /u/apps/my_client_production/shared/log/nginx.access.log;
error_log /u/apps/my_client_production/shared/log/nginx.error.log info;
location/{
try_files $uri $uri/ =404;
gzip_static on;
expires max;
add_header Cache-Control public;
}
# Error pages
error_page 500 502 503 504 /500.html;
}