Я обслуживаю одностраничное приложение JavaScript через nginx, и когда я развертываю новую версию, я хочу заставить браузеры аннулировать свой кеш JS и запрашивать/использовать новейшую доступную версию.
Так, например, когда я заменяю файл в папке сервера с именем my-app-8e8faf9.js
, с файлом с именем my-app-eaea342.js
, я не хочу, чтобы браузеры больше не вытащили my-app-8e8faf9.js
из своего кеша. Но, когда нет новой версии, я все же хочу, чтобы они считывали активы из кеша.
Как мне достичь этого с помощью конфигурации nginx? Это моя существующая конфигурация:
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;
}