CDN缓存404、403状态码

可以参考一下:浏览器缓存和 CDN 在前端的落地

事故记录:

  1. 前端发版时存在新旧两个容器,在资源替换的间隙,用户请求到的肯定是新容器的html文件,但是根据新容器的html向新静态资源发起请求,此时旧容器还没有完全被替换,在部分边缘节点中仍然存在旧容器,向新资源发起的请求到了旧容器内自然就失败了,返回404 not found。
    但是问题是:请求失败后静态资源返回404却被CDN缓存了,导致用户一直刷新,向新资源请求,哪怕节点已经被新容器替换了,CDN还是以为之前已经请求成功了,不会回源,一直返回缓存的404。

解决办法

  1. 采用灰度上线(根本解决)
  2. CDN清除缓存。(快速解决)
  3. 先上线静态资源,再把HTML上线。以及 针对非正常的状态码(HTTP Status 200)应该设置不缓存。
  4. 针对本地缓存的静态资源通过完全更换打包资源名称,或者更新nextjs的静态资源前缀,修改为一个OSS链接,然后将静态资源手动部署到OSS上,新上线之后的新版本就直接走OSS链接,之前的404资源失效。
相关推荐
三思而后行,慎承诺5 天前
requestIdleCallback 和 MessageChannel
javascript·reactjs
Flyfreelylss7 天前
前端实现解析【导入】数据后调用批量处理接口
前端·reactjs
全球网站建设1 个月前
从结构到交互:HTML5进阶开发全解析——语义化标签、Canvas绘图与表单设计实战
javascript·前端框架·php·reactjs·css3·html5
光影少年2 个月前
react18更新哪些东西
前端·学习·reactjs
cxr8282 个月前
Vercel AI SDK 3.0 学习入门指南
前端·人工智能·学习·react.js·typescript·npm·reactjs
光影少年2 个月前
react17更新哪些新特性
前端·reactjs
解道Jdon2 个月前
AI IDE冲击下JetBrains作死,IDEA埋订阅陷阱
javascript·reactjs
止观止2 个月前
React虚拟DOM的进化之路
前端·react.js·前端框架·reactjs·react
解道Jdon3 个月前
最新苹果液体玻璃Liquid Glass效果CSS实现
javascript·reactjs
菜鸡爱上编程3 个月前
React16,17,18,19更新对比
前端·javascript·reactjs·react