前端免费 CDN 怎么选?字节下线后还能用哪些?
先说个坏消息。
去年我有个项目还挂着字节跳动那个静态资源公共库,今年六月想换版本,一打开全是 404。
查了才知道,cdn.bytedance.com 已经在 2025 年 8 月因为被黑产滥用整个下线了。
如果你还在网上看到推荐它的文章(包括这篇的旧版),可以直接划走。
免费 CDN 这两年变化挺大,不光有服务下线,还有供应链投毒这种安全坑。
这篇按 2026 年 6 月的实际情况重新梳理一遍,哪些能用、哪些有雷,一次说清。
选型先看四个指标
选免费 CDN 别只盯着"免费"。踩过几次坑后,我固定看这四点,缺一个就慎用:
- 节点覆盖:国内项目看国内节点(北上广深、成渝至少要覆盖);国际项目看全球分布,北美、欧洲、东南亚得有节点。
- 资源支持:常用的 JS、CSS、图片、字体要全,能直接引用 npm 包更省事。
- 稳定性:优先大厂或运营多年的服务。字节那次下线就是教训,说停就停。
- 安全性:这是很多老文章漏掉的一项。CDN 一旦被投毒,你网站上所有用户都会中招,比慢一点严重多了。
各服务现状
下面这几个是目前还在跑、相对靠谱的选择。
全球节点,背靠 Cloudflare 和 Fastly,支持 npm、GitHub 直接引用,版本控制灵活。问题是默认节点 cdn.jsdelivr.net 国内我这边经常连不上,得换国内可用的镜像节点。
老牌开源库 CDN,由 Cloudflare 维护,资源覆盖广、更新及时。国内速度一般,适合国际项目或做备用源。
直接镜像整个 npm,任何发布到 npm 的包都能取到,这点最香。
但它本质是源站直出,没有专门做国内加速,速度看运气。
国内访问快、资源也丰富,Staticfile 来自七牛云。
但这俩有安全历史包袱,下面单独讲。
至于 字节跳动静态资源公共库,已下线,别再用了。
对比一览
| CDN 服务 | 节点 | 资源覆盖 | 安全/稳定性 | 适用场景 |
|---|---|---|---|---|
| jsDelivr | 全球 | 全面,支持 npm/GitHub | 较好,默认节点国内需换 | 国际项目、需要最新版本 |
| cdnjs | 全球(Cloudflare) | 主流开源库齐全 | 较好,国内速度一般 | 国际项目、备用源 |
| unpkg | 全球 | 镜像整个 npm,最全 | 源站直出,无国内加速 | 找冷门 npm 包 |
| BootCDN | 国内 | 丰富,历史版本多 | 有投毒前科,谨慎 | 国内项目,需老版本 |
| Staticfile | 国内(七牛云) | 热门资源齐全 | 有投毒前科,谨慎 | 国内项目 |
| 字节跳动公共库 | —— | —— | 2025-08 已下线 | 不可用 |
绕不开的安全坑:供应链投毒
这块得专门拎出来说。
2024 年那波 Polyfill.io 大规模供应链攻击,安全研究人员追查发现,BootCDN、Bootcss、Staticfile 这几家被同一个运营方控制,存在向引用方注入恶意脚本的行为。
说白了,你以为引的是 jQuery,实际可能被塞了别的东西。
直到 2025 年还有用户反馈类似问题。
那是不是这俩就完全不能碰?也不绝对。规避办法有几个:
- 引用时带上 SRI 完整性校验(
integrity属性),文件被改动浏览器会直接拒绝加载; - 生产环境关键依赖,干脆把文件下载到自己服务器或对象存储托管,不依赖第三方 CDN;
- 拿不准来源的库,优先选 Cloudflare 系的 cdnjs、jsDelivr。
我现在的习惯是:能自托管的核心库就自托管,CDN 只用来兜底加速一些大众库。
怎么用
用法其实很简单:
- 打开 CDN 网站,首页基本都带搜索;
- 搜资源名,找到对应版本;
- 复制链接,丢进你的页面源码里引用。
比如引 jQuery 和一个样式库,建议带上 SRI 校验:
<!-- jsDelivr 引用 npm 包,crossorigin + integrity 做完整性校验 -->
<script
src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
crossorigin="anonymous"></script>
<!-- cdnjs 引用 CSS -->
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/nouislider/15.7.1/nouislider.min.css">integrity 的哈希值在 cdnjs、jsDelivr 的资源页都能一键复制,强烈建议补上。
常见问题
字节跳动静态资源公共库还能用吗?
不能。
cdn.bytedance.com 已于 2025 年 8 月因被黑产滥用整体下线,所有资源返回 404。
旧项目里如果还在引用它,需要尽快迁移到 jsDelivr 或自托管。
jsDelivr 国内访问慢怎么办?
默认节点 cdn.jsdelivr.net 国内可用性不稳定。
可以换社区维护的国内镜像节点,或者在构建时把依赖打包进自己的资源,减少对单一节点的依赖。
免费 CDN 安全吗?要不要用 SRI?
第三方 CDN 存在被投毒的可能,BootCDN、Staticfile 就出过事。
强烈建议给所有外链脚本和样式加 integrity(SRI)校验,文件一旦被篡改浏览器会拒绝加载。核心依赖最好自托管。
unpkg 和 jsDelivr 选哪个?
找冷门 npm 包用 unpkg,它镜像了整个 npm;要稳定加速和版本控制用 jsDelivr。
两者可以互为备用。
总结
国内项目,我现在更倾向 jsDelivr(配合可用节点)加 SRI 校验,核心库自托管兜底;BootCDN、Staticfile 能用但要清楚它们的投毒历史,别裸引。
国际化项目,首选 jsDelivr 或 cdnjs,全球节点稳定,资源也全。
一句话,免费 CDN 省的是带宽钱,但稳定性和安全得你自己上心。
字节那次下线之后,我对"免费基础设施"这事的信任度低了不少。
如果大家发现更靠谱的免费 CDN,或者遇到节点不可用、资源被投毒之类的坑,欢迎在评论区交流分享~
版权声明
未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!