我通过nginx提供单页JavaScript应用程序,当我部署新版本时,我想强制浏览器使其JS缓存无效并请求/使用最新版本。
例如,当我使用名为my-app-8e8faf9.js
的文件替换名为my-app-eaea342.js
的服务器文件夹上的文件时,我不希望浏览器提取{{1从他们的缓存中再次出现。但是当没有新版本可用时,我仍然希望他们从缓存中读取资产。
如何使用nginx配置实现此目的?这是我现有的配置:
my-app-8e8faf9.js
答案 0 :(得分:4)
通过更改资产网址来使缓存无效是一种常规做法。
但要实现这一点,你需要永久缓存你的html文件,以便浏览器在这些名称发生变化时会有一些信息。
html和资产的独立位置。匹配器可能会有所不同,具体取决于您存储它们的方式,例如:
location / {
try_files $uri $uri/ =404;
gzip_static on;
}
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}