我有一个不同位置的 NGINX 配置。他们都返回一个人index.html
。index.html
s 是随每个部署构建的。它们包括script
JavaScript 文件的标签,这些文件在文件名中带有内容哈希,以破坏缓存。
我的问题是,在部署之后,一些必需的脚本正在运行,404
因为下载index.html
的 JS 文件名中有旧的内容哈希。好像是送的方式有问题index.html
,因为是index.html
客户端下载的老版本。
这是我的 NGINX 配置中的一个示例位置:
location /my-route {
try_files $uri /my-route/index.html;
}
当我检查响应标头时,我看到所有 index.html 文件的 ETag。还不足以确保所有index.html
文件的正确缓存行为吗?
我的下一个方法是添加一个Cache-Control
标题。但我不知道它是否能解决我的问题,因为我无法准确解释为什么它会是正确的解决方案(但我想了解它)。
location /my-route {
add_header Cache-Control "must-revalidate";
try_files $uri /my-route/index.html;
}