vue项目强制清除页面缓存的例子


Posted in Javascript onNovember 06, 2019

异常描述:

支付宝中内嵌h5项目(vue框架开发),前端重新打包上传之后访问页面会导致页面空白、页面tab点击异常之类异常情况,需要手动清除支付宝缓存才可以正常访问。

解决方案:

在HTTP协议中,只有后端返回 expires 或 Cache-Control:max-age=XXX, 前端才缓存。

但在浏览器中,默认会对 html css js 等静态文件、以及重定向进行缓存,如果在HEAD头中指定:

<HEAD>
<METAHTTP-EQUIV="Pragma"CONTENT="no-cache">
<METAHTTP-EQUIV="Cache-Control"CONTENT="no-cache">
<METAHTTP-EQUIV="Expires"CONTENT="0">
</HEAD>

浏览器不会缓存html,但是还是会对重定向缓存,并且这种方式并不规范,可能有的浏览器不支持。

我的最终解决方案是:

1) 对hash过的静态文件还是采用默认方式,客户端会缓存。

2)对html文件,返回时增加头:Cache-Control,必须每次来服务端校验,根据etag返回200或者304

对应的nginx配置如下:

upstream example-be {
ip_hash;

server unix:/run/example-be.sock;
}
server{

listen 80; #监听端口

server_name example.com


# 后台api

location ~ ^/api {


proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


include uwsgi_params;

  uwsgi_pass example-be;
  }


# 前端静态文件

location ~* \.(gif|jpg|jpeg|png|css|js|ico|eot|otf|fon|font|ttf|ttc|woff|woff2)$ {


root /var/www/example-fe/dist/;

}


# 前端html文件

location / {


# disable cache html


add_header Cache-Control 'no-cache, must-revalidate, proxy-revalidate, max-age=0';



root /var/www/example-fe/dist/;


index index.html index.htm;


try_files $uri /index.html;

}
}

由于浏览器缓存静态文件的时间不可控,我们可以在nginx上自己配置expires 1M(1个月)

# 前端静态文件

location ~* \.(gif|jpg|jpeg|png|css|js|ico|eot|otf|fon|font|ttf|ttc|woff|woff2)$ {
 root /var/www/example-fe/dist/;
 
expires 1M;
 
add_header Cache-Control "public";
 }

以上这篇vue项目强制清除页面缓存的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery学习3:操作元素属性和特性
Feb 07 Javascript
jquery 简单图片导航插件jquery.imgNav.js
Mar 17 Javascript
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
Jun 18 Javascript
js 动态文字滚动的例子
Jan 17 Javascript
JQuery的ready函数与JS的onload的区别详解
Nov 21 Javascript
基于jQuery实现下拉框
Nov 24 Javascript
js查看一个函数的执行时间实例代码
Sep 12 Javascript
jQuery Real Person验证码插件防止表单自动提交
Nov 06 Javascript
基于JavaScript实现购物网站商品放大镜效果
Sep 06 Javascript
JavaScript实现星级评分
Jan 12 Javascript
Node.js Express 框架 POST方法详解
Jan 23 Javascript
vue element实现表格合并行数据
Nov 30 Vue.js
关于vue路由缓存清除在main.js中的设置
Nov 06 #Javascript
JS实现随机抽取三人
Nov 06 #Javascript
Node对CommonJS的模块规范
Nov 06 #Javascript
VUE 组件转换为微信小程序组件的方法
Nov 06 #Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
Nov 05 #Javascript
解决vue.js提交数组时出现数组下标的问题
Nov 05 #Javascript
js+html实现点名系统功能
Nov 05 #Javascript
You might like
PHP简单系统数据添加以及数据删除模块源文件下载
2008/06/07 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
thinkPHP框架RBAC实现原理分析
2019/02/01 PHP
js实现的网页颜色代码表全集
2007/07/17 Javascript
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
JavaScript中函数声明优先于变量声明的实例分析
2012/03/01 Javascript
JS检测图片大小的实例
2013/08/21 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
JS实现前端缓存的方法
2017/09/21 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
Python中set与frozenset方法和区别详解
2016/05/23 Python
python如何将多个PDF进行合并
2019/08/13 Python
python 3.6.7实现端口扫描器
2019/09/04 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
python定义类的简单用法
2020/07/24 Python
Python 实现微信自动回复的方法
2020/09/11 Python
CSS3 translate导致字体模糊的实例代码
2019/08/30 HTML / CSS
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
Canvas 帧动画吃苹果小游戏
2020/08/05 HTML / CSS
Sneaker Studio捷克:购买运动鞋
2018/07/08 全球购物
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
阿拉伯书店:Jamalon
2019/07/24 全球购物
广告设计应届生求职信
2014/03/01 职场文书
优秀教师先进材料
2014/12/16 职场文书
2014年校务公开工作总结
2014/12/18 职场文书
博士导师推荐信
2015/03/25 职场文书
介绍信格式样本
2015/05/05 职场文书
python​格式化字符串
2022/04/20 Python