带latest与不带latest的JSDelivr URL加载行为差异咨询
解答
你后续测试得出的两者行为一致的结论是正确的,观测到的更新延迟属于jsdelivr的正常设计,和官方文档描述不存在冲突:
- 不管是显式添加
@latest标识,还是完全省略版本号,两种URL本质都是读取jsdelivr同步的NPM包latest标签指向的版本,两者底层逻辑完全一致,不存在行为差异。 - jsdelivr的NPM源默认每隔24小时才会同步一次NPM官方registry的
latest标签更新,因此新版本发布后最长需要等待24小时,才能被无版本号/@latest链接捕获到。你调用的purge API仅能清除CDN边缘节点已经缓存的旧资源,无法触发jsdelivr主动同步latest标签的指向,因此purge后依旧会返回同步周期内缓存的版本。 - 如果需要尽可能缩短新版本生效时间,可以在发布后先访问一次带明确版本号的对应资源链接,再调用purge API清除无版本号链接的缓存,该操作可以在一定程度上缩短等待时间,但依旧无法保证实时生效,这也是官方明确不推荐生产环境使用无版本号链接的核心原因。
内容的提问来源于stack exchange,提问作者Shashank Agrawal
相关产品推荐
相关产品推荐

