← AI 百科

CDN 缓存问题

报错库 · 报错 / 部署 / 性能
一句话:网站更新了内容,但用户看到的还是旧版本,通常是CDN节点缓存了旧内容没有及时刷新。

它是什么

CDN(内容分发网络)为了加速访问,会把网站内容缓存到全球各地的节点上。这带来速度提升的同时,也意味着你更新了源站内容后,CDN节点可能还在提供之前缓存的旧版本,需要主动清除缓存(刷新/预热)才能让所有用户看到最新内容。

适合干什么

  • 网站更新后发现部分用户看到旧内容
  • 静态资源(图片、CSS、JS)更新后没有生效

不适合干什么

  • 网站根本没有接入CDN的情况(这种直接查源站问题即可,不涉及CDN缓存)

普通人怎么用

去CDN服务商的控制台找到"刷新缓存/清除缓存"功能,手动刷新对应的URL或目录;如果是频繁更新的内容,考虑给资源文件名加版本号/哈希值,这样每次更新文件名都变,天然绕开缓存问题。

进阶用户怎么用

合理设置不同资源的缓存时间(Cache-Control):不常变的资源(如带哈希的JS/CSS文件)可以设置长缓存,频繁变化的内容(如API接口、动态页面)应该设置短缓存或不缓存。

常见误区

  • 以为清除浏览器缓存就能解决问题,实际上是CDN节点在缓存,和用户本地浏览器缓存是两回事
  • 所有资源都设置成不缓存,虽然能避免这个问题,但会失去CDN加速的意义,影响网站访问速度

和相似工具的区别

  • 和浏览器缓存的区别:浏览器缓存只影响单个用户,CDN缓存影响所有从该CDN节点访问的用户,排查和清除的位置也不同

入门步骤

  • 确认问题是CDN缓存导致(部分用户看到新内容部分看到旧内容是典型特征)
  • 去CDN控制台清除对应内容的缓存
  • 考虑给经常更新的资源加版本号避免未来重复出现