以下是我的nginx
服务器配置。最近添加了Cache-Control
标题。我的浏览器仍旧缓存旧文件,而不是从服务器获取它 - 我通过拖尾access.log
来验证这一点。有没有办法强制所有用户从我的服务器获取更新的文件?
location /webapp {
root /usr/share/nginx/html;
try_files $uri $uri/ /webapp/index.html;
add_header Cache-Control must-revalidate always;
}
答案 0 :(得分:2)
缓存文件后,您无法做很多事情来使条目无效。
用户通常必须发出强制重新加载,这通常可以通过按住SHIFT键并按下RELOAD按钮来完成。
或者,如果从您仍然可以控制的网页中加载了所涉及的资源,那么您通常可以将随机字符串作为参数添加到资源中(例如,使用{替换网页中的.png
{1}}),nginx经常会忽略静态资源,但会确保资源有一个新的URL,因此还没有被缓存。 (同样的技巧,通过向URL添加随机noop参数,用户也可以使用它来有效地强制新请求,无论资源是否已经被缓存。)