概述

作为一个 Web Developer 肯定知道 jsDelivr 的吧?jsDelivr 的体量与免费让其在业界成为大佬级别的存在,在全球 CDN 加速板块中可谓首屈一指。

根据网络能查到的记录,从 2021 年 12 月 20 日起,jsDelivr 在中国经历 SSL 证书过期和 ICP 牌照被工信部撤销一系列大事件。

发现问题

而截至到今天(2022 年 5 月 25 日)托管在 jsDelivr 的文件依然无法在大陆所有省市正常访问,以导致何星星最近发布的一个项目出现一个非常诡异的事件,在我自己测试和正式的环境(上海)访问正常,但在南部和北部多数城市出现前端界面元素偏移,起初几天还以为是用户的电脑或浏览器版本原因,当时项目也比较急,这些暂时不影响实际使用的问题何星星就没着急处理。

解决问题

而今天,正好遇到一个用户使用出现功能问题,看现象貌似是跟已知的元素偏移有关,因为功能正好在偏移的元素块中无法显示操作,随之远程到用户端检查代码后才发现在我这正常能使用的 jsDelivr 在用户端竟然无法打开,当即先替换了原来在 jsDelivr 的 bootstrap 框架链接,立即得到解决,查看其他项目后发现之后的一些项目都用的是 unpkg 的 cdn。

问题原因

根据目前大多数开发者论坛的交流来看,最大的原因的是用户将 jsDelivr 的服务滥用,建立图床、存放视频、文件备份、全站托管以上传及传播违反中国大陆相关法规与政策的资源等,虽然 jsDelivr 在此次出事之前更新了它的可接受使用政策(AUP),当相关用户选择无视该政策或是刻意为之。而针对这些服务的内容是否符合当地要求,网络管理部门若不能一一审查或追踪,那么最快的阻断方法就是全域拦截,2021 年 12 月 20 日 jsDelivr 迎来了它在中国的一个重要时刻,被卸了 ICP 牌照,随即国内合作的加速厂商也迅速遵循要求在未经通知的情况下关闭了加速节点,对于远在大洋彼岸的服务商次日上班时打开监测发现问题后也应该是一脸懵逼。

值得一提的是:jsDelivr 是唯一拥有中国政府颁发的有效 ICP 许可证的公共 CDN,并在中国大陆直接拥有数百个地点。 这段话 jsDelivr 到目前还依然悬挂到网络节点页面,最初 jsDelivr 官方对于自己能够在中国大陆合法提供服务的喜悦可以切身感受得到。

替换方案 1

cdn.jsdelivr.net 替换为 fastly.jsdelivr.net

随即通过测试 cdn.jsdelivr.net 只有在极少数城市还可以正常访问,且加速节点明显没有之前那么完整,可想而知,如果继续在生产环境中使用 cdn.jsdelivr.net,你将可能得到一个无法自行检查的问题时现时隐,如果我没有远程到用户端查看,我还一直不知道是 jsDelivr 的问题。

如果依然计划要用 jsDelivr 的加速节点,目前已知 fastly.jsdelivr.net 可用,根据查验这是部署在境内周边地区(香港、新加坡等)的节点,这是相对 cdn 子域的一个比较更快的服务,但在国内访问的速度可能还是没有之前国内节点快,但好在目前依然还是稳定的。替换也非常简单,只要将在域名的子域 cdn 改为 fastly 即可,实例:

https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js
https://fastly.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js

替换方案 2

使用其他厂商的加速节点

其中 建议的替代方案 内的列表通过使用舒适性与服务稳定性着重关系是自上而下推荐,可见位于顶部值得做为 jsDelivr 替代方案的服务商依然是国外的厂商,而国内的 https://staticfile.org(七牛静态库)、 https://cdn.bytedance.com(字节静态库)、https://cdn.baomitu.com(360 静态库)、https://cdn.bootcdn.net(极兔云)等服务厂商在稳定性和更新频率显得无法与顶部厂商比拟。

jsDelivr 方案

https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css

建议的替代方案

https://unpkg.com/bootstrap@5.1.3/dist/css/bootstrap.min.css
https://unpkg.zhimg.com/bootstrap@5.1.3/dist/css/bootstrap.min.css
https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.1.3/css/bootstrap.min.css
https://cdn.staticfile.org/bootstrap/5.1.3/css/bootstrap.min.css

* unpkg.zhimg.com / unpkg.com 互连通用,前者为后者的国内镜像,属于知乎内部静态文件库。

更多静态库服务

https://hexingxing.cn/cdn/

分类: 前端开发

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。