如何更新或删除cdn.jsdelivr.com上托管的CDN脚本?
jsDelivr托管GitHub脚本的更新、修改、删除规则解答
基础规则
- 上传到jsDelivr的GitHub源资源不支持用户直接手动修改、即时删除,所有资源同步依赖GitHub侧的变更触发,受CDN缓存机制约束。
- 修改GitHub仓库代码后CDN资源未同步更新属于正常现象,不是配置故障。
不同步的原因
你当前使用的是@main分支形式引用资源,jsDelivr对分支类引用的资源默认设置了4小时的缓存周期,和实测3小时左右完成更新的时间差基本一致:缓存到期前,所有CDN节点不会回源到GitHub拉取最新代码,不管怎么修改仓库内的文件,用户访问CDN地址拿到的都是旧版本缓存。
快速更新的正确操作
不要直接用分支名作为生产环境的资源版本标识,这是公共CDN使用的通用避坑准则:
- 每次更新脚本后,在GitHub仓库打对应语义化版本的tag(比如v1.0.0、v1.0.1),引用资源时使用
@tag版本号的格式,这类带明确版本标识的资源会被jsDelivr判定为不可变静态资源,tag发布后会即时完成同步,不会出现缓存延迟、版本错乱的问题。 - 如果临时需要刷新分支版本的缓存,可以使用jsDelivr自带的缓存清除功能手动触发,注意该功能有调用频次限制,不适合频繁更新场景使用。
删除相关说明
- 如果删除GitHub仓库、或者删除仓库内的对应脚本文件,jsDelivr不会即时移除已缓存的资源,等对应缓存周期到期后资源才会自动失效。
- 如果涉及侵权、违规内容需要紧急删除,需要单独向jsDelivr官方提交申请走人工审核流程,普通用户没有权限直接删除已经分发到CDN节点的公开资源。
提示:目前已经有其他用户在使用该脚本,长期用分支引用的形式分发会导致不同用户在缓存周期内拿到版本不一致的代码,很容易出现功能异常,建议尽快切换到tag版本号的分发形式。
内容的提问来源于stack exchange,提问作者emon Guid
相关产品推荐
相关产品推荐

