原由
每当更改了前端某些js,html等文件,并重新发布服务时总是得需要清理浏览器缓存,要不然无法正确显示页面。要想理解浏览器缓存的逻辑可参考这篇文章:浏览器缓存知识。
尝试做过一些修改比如参考我想转行之—-微信浏览器缓存 ,但是这些方法要么实现不够优雅过于麻烦,要么指标不治本。
解决
后来想到通过nginx修改HTTP的header来欺骗后端服务不走缓存。代码如下:
1 | server { |
添加的内容为:
1 | location /vendor/echarts/echarts.js { |
第一个localtion
表示请求echars.js文件时走缓存,因为发现echarts.js请求时间比较长,很影响页面的打开体验,而且echars.js基本上不会做更改。
expires
表示让nginx不进行缓存。proxy_set_header
欺骗服务后端,这是第一次请求文件。