nginx:强制浏览器重新验证

时间:2017-07-12 17:30:48

标签: nginx browser-cache cache-control

以下是我的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;
    }

1 个答案:

答案 0 :(得分:2)

缓存文件后,您无法做很多事情来使条目无效。

用户通常必须发出强制重新加载,这通常可以通过按住SHIFT键并按下RELOAD按钮来完成。

或者,如果从您仍然可以控制的网页中加载了所涉及的资源,那么您通常可以将随机字符串作为参数添加到资源中(例如,使用{替换网页中的.png {1}}),nginx经常会忽略静态资源,但会确保资源有一个新的URL,因此还没有被缓存。 (同样的技巧,通过向URL添加随机noop参数,用户也可以使用它来有效地强制新请求,无论资源是否已经被缓存。)