threejs-test/nginx.conf
Juan Sebastian Montoya 98ec60641d
All checks were successful
Build and Publish Docker Image / Publish to Registry (push) Successful in 8s
Build and Publish Docker Image / Deploy to Portainer (push) Successful in 2s
Hotfix/Cache bust all js files (#21)
Reviewed-on: #21
Co-authored-by: Juan Sebastian Montoya <juansmm@outlook.com>
Co-committed-by: Juan Sebastian Montoya <juansmm@outlook.com>
2025-11-26 19:40:41 -05:00

46 lines
1.3 KiB
Nginx Configuration File

server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
# Cache JavaScript files with version query params for 1 year (immutable)
# Files without version params are not cached
location ~* \.(js|mjs)(\?v=[^&]+)?$ {
if ($args ~ "v=") {
# Has version param - cache for 1 year (immutable)
add_header Cache-Control "public, max-age=31536000, immutable";
}
if ($args !~ "v=") {
# No version param - don't cache
add_header Cache-Control "no-cache, no-store, must-revalidate";
add_header Pragma "no-cache";
add_header Expires "0";
}
add_header Vary "Accept-Encoding";
}
location = /version.json {
add_header Cache-Control "no-cache, no-store, must-revalidate";
add_header Pragma "no-cache";
add_header Expires "0";
}
# Prevent caching of HTML
location ~* \.html$ {
add_header Cache-Control "no-cache, no-store, must-revalidate";
add_header Pragma "no-cache";
add_header Expires "0";
}
# Enable gzip compression
gzip on;
gzip_types text/html text/css application/javascript;
gzip_min_length 1000;
}