前言:移动端部署更新到Nginx后, 客户端如果之前已经下载过一次html文件, 那么如果客户端访问时, 移动端的html等代码文件并不会刷新, 需要用户强行退出客户端, 重新扫码登录或验证码登录之后, 再次访问移动端, 才有可能加载最新的静态文件。而这种让用户强行退出再次登录的方法,有时还不一定行。
为此, 就把移动端访问的静态文件的Html缓存禁用, 用户每次进来刷新页面的时候都不从浏览器缓存加载文件, 而是从服务器中请求。
1、重新打包移动端
重新打包移动端,重新把它部署到nginx中。 保证移动端的css文件等的修改日期被修改到, 如看响应头,保证Last-Modified被修改了。
2、nginx配置修改
nginx.conf中移动端的部分需要添加配置:
add_header Pragma 'no-cache';
add_header Expires '0';
add_header Cache-Control 'no-cache,no-store,must-revalidate';
完整一点的配置参考:
location /bins-app {
add_header Pragma 'no-cache';
add_header Expires '0';
add_header Cache-Control 'no-cache,no-store,must-revalidate';
root bins-app;
index index.html index.htm;
try_files $uri $uri/ /bins-app/index.html;
}
另一种方式是,设置过期的时间, 如下:
location /bins-app {
# 1分钟过期
expires 1m;
root bins-app;
index index.html index.htm;
try_files $uri $uri/ /bins-app/index.html;
}