更新服务器上的前端文件后安卓始终有缓存,纯前端项目多节点部署遇到的文件缓存问题…

1、问题场景

(1)应用是纯前端应用, 使用nginx作为服务器提供对外访问

(2)支持history api,使用url形式访问

(3)线上应用,有两个以上的节点

(4)为保证文件实时更新,文件都采用md5指纹组成的文件名

2、问题原因

(1)为支持url形式访问,配置了nginx,使访问不到的路由都到了index.html

location / {

root /usr/xxx/nginx/html;

index index.html index.htm;

try_files $uri $uri/ /index.html;

}复制代码

(2)多节点部署策略问题。 目前采用的间隔指定时间(如20s)进行节点部署。 当第一台机器部署之后20s之后部署第二台。

(3)交替部署期间,访问了应用

3、问题现象

当访问了一台未开始部署的机器时, 发现有些js文件由于内容变化,导致当前机器未能找到文件,

同时触发nginx的try_fils配置,导致输出内容为index.html的内容。

此时浏览器端认为这是一个合理正确的请求,并对这个资源进行了缓存

只要不是强制刷新,之后的缓存时间内,改文件将都是错误的内容。 从而导致了问题!

4、解决方式

对静态文件配置一个单独的处理,当找不到时,输出50x的错误

location ~.*\.(js|css|gif|jpg|jpeg|png)$ {

root /usr/xxx/nginx/html;

try_files $uri $uri/ 503;

}复制代码

5、缺点

在间隔时间内 仍然有几s时间服务中断

原文链接:https://blog.csdn.net/weixin_35980011/article/details/119603455

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/8262

(0)
上一篇 2022年10月9日 22:38
下一篇 2022年10月10日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml