起因——同事合并代码时没处理冲突文件直接上传至服务器,导致某个页面无法正常访问;处理冲突之后微信自带的浏览器仍然无法访问,其他浏览器清理缓存之后都能正常访问了,看来是文件缓存导致的。
我们平台使用的是vue,每次打包产出的文件都是自带hash值的文件。所以只要入口文件不缓存就行了,css/js文件可以正常使用缓存减轻服务器的负担
贴上Nginx的配置
location ~ .*\.(htm|html)?$ { add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate"; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; }
html文件设置请求no-cache ,静态资源文件设置缓存时间30天,js/css文件设置缓存12小时