现在浏览器或者系统访问网页都会有自己的一套缓存机制,这就可能会导致前端代码已经更新了,但是用户还是访问了之前的缓存。
    这里介绍下用nginx处理这个问题的方法,这里配置htmlhtm文件不缓存。

    1. server {
    2. listen 80;
    3. server_name test.exmaple.cn;
    4. location / {
    5. # 配置页面不缓存html和htm结尾的文件
    6. if ($request_filename ~* .*\.(?:htm|html)$)
    7. {
    8. add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
    9. }
    10. root /web/;
    11. index index.html;
    12. try_files $uri $uri/ /index.html =404;
    13. }
    14. }

    上面我们只配置了不缓存htmlhtmjscss等文件没有做处理,是因为我们前端编译发布代码时,如果某个jscss有更新,会自动在文件名上加时间戳、哈希值,这样一发新版时,只要客户端请求了新版的html,就会自动找到新的jscss,没有更新的jscss还会继续用缓存,这样既不会太大的影响网页的访问速度,也能保证更新的代码不走缓存。