jsdelivr

jsdelivr

高性能多CDN架构的开源项目内容分发服务

jsDelivr为开源项目提供免费CDN服务,与GitHub和npm深度整合。采用多CDN架构、智能负载均衡和多层故障转移,保障高可用性和性能。支持实时优化、ES模块和下载统计。适用于高流量生产环境,无带宽限制。其多CDN策略、智能路由和永久存储确保内容持续可用,即使原始源不可访问。

jsDelivrCDN开源npmGitHubGithub开源项目
<h1 align="center">jsDelivr - 开源CDN</h1> <p align="center"> <img src="https://yellow-cdn.veclightyear.com/2b54e442/2b36765a-bb64-46a5-ba46-6d5ed2a0c591.png" alt="jsdelivr-logo" width="128px" height="128px"/> <br> <i>一个全球超快速且面向生产的CDN,与NPM和GitHub紧密集成 <br> 支持即时优化、ES模块、详细下载统计等功能</i> <br> </p> <p align="center"> <a href="https://www.jsdelivr.com"><strong>www.jsdelivr.com</strong></a> <br> </p> <p align="center"> <a href="https://github.com/jsdelivr/www.jsdelivr.com">网站仓库</a> · <a href="https://github.com/jsdelivr/data.jsdelivr.com">公共API</a> · <a href="https://www.jsdelivr.com/blog/">博客</a> · <a href="https://twitter.com/jsdelivr">@jsDelivr</a> · <a href="https://www.jsdelivr.com/discord">Discord</a> <br> <br> </p> <hr>

我们正在寻找贡献者。 如果你认为可以提供帮助,请查看上述仓库中的未解决问题,或者如果你有想讨论的想法,请提出新的问题。

jsDelivr是一个免费的开源文件CDN。我们与Github和npm紧密集成,能够自动为几乎所有开源项目提供可靠的CDN服务。

我们提供一个稳定的CDN,可以在拥有大量流量的热门网站上用于生产环境。 没有带宽限制或高级功能,完全免费使用。

它是如何工作的 - 一个简单的信息图

为什么选择jsDelivr?

适用于生产环境

我们的公共CDN专为在生产环境中使用而构建,即使是最大的网站也可以使用。一切都经过优化并不断改进,以为所有用户提供最大的速度和正常运行时间。性能始终受到监控,我们一直在寻找可能进一步改进我们CDN的新技术和提供商。宕机、超时或慢速响应都是不可接受的。

我们尽一切可能确保我们的CDN永远不会破坏任何网站,无论使用场景如何。如果通过我们的CDN可以获得文件,我们就假设它在生产中使用,并确保它无论如何都会继续工作。

这包括动态端点,如/npm//gh//combine/。当首次访问文件时,它会永久存储在可靠的文件系统中。这意味着即使npm包被删除或开发人员删除了现有文件,jsDelivr也会继续提供存储的副本,永远不会破坏任何网站或造成任何问题。

除此之外,我们还进行版本回退。这意味着如果1.0.1版本中使用的文件在1.0.2版本中不再可用,而用户请求不存在的文件,我们会回退到之前的1.0.1版本并提供服务,而不是以404错误失败。

多CDN

与竞争对手不同,jsDelivr使用多个CDN提供商,从而实现最佳的正常运行时间和性能。我们目前使用CloudFlareFastly

如果一个CDN宕机,使用jsDelivr的网站不会有任何问题,因为所有流量将立即重定向到剩余的运行中的提供商。

智能负载均衡

jsDelivr使用真实用户性能数据(也称为RUM)来做出路由决策。这些指标从数百个网站收集,并用于我们的负载均衡算法中,以做出准确的内容服务决策。

所有提供商(CDN和自定义服务器)每天都会被全球真实用户测试数百万次。基于这些信息,jsDelivr知道哪个提供商对每个用户来说是最快的。每个用户都会根据其位置、ISP和提供商的实时正常运行时间获得独特的响应。

该系统还能立即响应提供商的性能下降和宕机。如果一个CDN遭受DDoS攻击,其在某些地方的性能下降,算法会在几秒钟内察觉到变化,并开始为所有受影响的用户提供不同的提供商。

故障转移

我们有多层故障转移来保护我们的用户免受任何宕机影响。

我们同时使用两个DNS提供商。要使jsDelivr宕机,这两家公司必须同时宕机。

我们的两个DNS提供商都监控我们的负载均衡端点,如果检测到问题,它们会自动将所有流量切换到单个CDN提供商。

我们的负载均衡器使用RUM和合成数据监控所有CDN提供商的正常运行时间。如果检测到任何宕机或性能下降,该CDN提供商将立即被移除,不会对我们的用户产生任何影响。

我们的源站由不同数据中心的多台服务器组成。如果一台服务器宕机,CDN将自动切换到使用剩余的健康服务器。

总的来说,我们拥有最具弹性的系统之一,准备好被甚至是最大的公司用于生产环境。

中国

jsDelivr在靠近中国城市中心的多个位置,确保为所有中国用户提供低延迟和高性能。

使用文档

jsDelivr为npm、GitHub、WordPress插件提供镜像,并为具有特殊要求的其他几个项目提供自定义端点。如果我们的常规端点不适合您的用例,请告诉我们,我们会想办法解决!

如果您是包作者,请查看我们的包作者提示,以使使用您的包尽可能简单。

根端点始终是https://cdn.jsdelivr.net

npm

jsDelivr可以立即提供公共注册表中任何npm包的任何文件。 推送到npm的新版本也会立即通过我们的CDN提供。无需维护。

如果包、版本或文件从npm中删除,jsDelivr将继续从我们的永久存储中提供该文件,而不会破坏任何使用它的网站。

我们使用永久S3存储来确保即使npm宕机或作者删除了包,所有文件也能保持可用。文件仅在第一次或S3宕机时直接从npm获取。

加载npm上托管的任何项目:
/npm/package@version/file
加载确切版本:
/npm/jquery@3.1.0/dist/jquery.min.js
使用版本范围而不是确切版本:
/npm/jquery@3/dist/jquery.min.js
/npm/jquery@3.1/dist/jquery.min.js

注意

如果您使用此功能,而您请求的文件在包的最新版本中不可用,链接将继续工作,这要归功于我们的版本回退功能。我们将继续从包的旧版本提供文件,而不是以404错误失败。


按标签加载(不推荐用于生产环境):
/npm/jquery@beta/dist/jquery.min.js
完全省略版本或使用"latest"加载最新版本(不推荐用于生产环境):
/npm/jquery@latest/dist/jquery.min.js
/npm/jquery/dist/jquery.min.js

注意 请求最新版本(相对于"最新主版本"或"最新次版本")是危险的,因为主版本通常会带来破坏性变更。只有在您真正知道自己在做什么时才这样做。


在任何JS/CSS/SVG文件后添加".min"以获取压缩版本 - 如果不存在,我们将为您生成。所有生成的文件都带有源映射,可以在开发过程中轻松使用:
/npm/github-markdown-css@2.4.1/github-markdown.min.css

注意 压缩大文件可能需要几秒钟。但是,我们将所有生成的文件存储在永久存储中,因此这种延迟仅适用于前几个请求。


省略文件路径以获取默认文件。此文件始终是压缩的:
/npm/jquery@3.1.0
/npm/jquery@3
/npm/jquery
获取目录列表:
/npm/jquery@3.1.0/
/npm/jquery@3.1.0/dist/

GitHub

我们建议对支持npm的项目使用npm以获得更好的用户体验 - npm包可在我们的网站上搜索,包页面显示额外的有用信息,如描述和主页链接。

我们使用永久S3存储来确保即使GitHub宕机或作者删除了仓库或发布,所有文件也能保持可用。文件仅在第一次或S3宕机时直接从GitHub获取。

加载任何GitHub发布、提交或分支:
/gh/user/repo@version/file
加载确切版本:
/gh/jquery/jquery@3.1.0/dist/jquery.min.js
/gh/jquery/jquery@32b00373b3f42e5cdcb709df53f3b08b7184a944/dist/jquery.min.js
使用版本范围而不是确切版本(仅适用于有效的语义化版本):
/gh/jquery/jquery@3/dist/jquery.min.js
/gh/jquery/jquery@3.1/dist/jquery.min.js

注意 如果您使用此功能,而您请求的文件在最新发布中不可用,链接将继续工作,这要归功于我们的版本回退功能。我们将继续从旧发布中提供文件,而不是以404错误失败。


完全省略版本或使用"latest"加载最新版本(仅适用于有效的语义化版本):(不推荐用于生产环境)

如果没有标记的发布,则回退到master分支。

/gh/jquery/jquery@latest/dist/jquery.min.js
/gh/jquery/jquery/dist/jquery.min.js

注意 请求最新版本(相对于"最新主版本"或"最新次版本")是危险的,因为主版本通常会带来破坏性变更。只有在您真正知道自己在做什么时才这样做。


在任何JS/CSS/SVG文件后添加".min"以获取压缩版本 - 如果不存在,我们将为您生成。所有生成的文件都带有源映射,可以在开发过程中轻松使用:
/gh/jquery/jquery@3.2.1/src/core.min.js

注意 压缩大文件可能需要几秒钟。但是,我们将所有生成的文件存储在永久存储中,因此这种延迟仅适用于前几个请求。


获取目录列表:
/gh/jquery/jquery@3.1.0/
/gh/jquery/jquery@3.1.0/dist/

组合多个文件

我们的组合端点允许您在一个请求中从npm和GitHub端点加载多个文件:

/combine/url1,url2,url3

适用于单个文件的所有功能(版本范围、压缩、主模块)在这里也适用。所有组合的文件都带有源映射,可以在开发过程中轻松使用。

示例:

/combine/gh/jquery/jquery@3.1/dist/jquery.min.js,gh/twbs/bootstrap@3.3/dist/js/bootstrap.min.js
/combine/npm/bootstrap@3.3/dist/css/bootstrap.min.css,npm/bootstrap@3.3/dist/css/bootstrap-theme.min.css

注意 合并大型/多个文件可能需要几秒钟的时间。然而,我们会将所有生成的文件存储在永久存储中,因此这种延迟仅适用于前几次请求。


发布包

npm上托管的所有包和GitHub上的标记版本在jsDelivr上都是自动可用的。如果你是包的作者,这里有一些提示可以使你的包尽可能容易使用:

  • 使用semver进行版本控制(这是npm强制要求的,但GitHub不要求)
  • 如果在package.json中列为main的文件不是用于浏览器的,请设置browserjsdelivr字段
  • 如果你分发压缩的JS/CSS文件,也请包含这些文件的源映射
  • 如果你不想提供压缩文件,没关系 - 我们会为你处理

在package.json中配置默认文件

对于托管在npm上的包,我们支持使用较短的URL提供"默认"文件。可以通过在package.json中设置以下字段之一来配置默认文件,其中jsdelivr具有最高优先级:

  1. jsdelivr
  2. browser
  3. main

我们首先会尝试找到这里提供的文件的压缩版本(通过删除扩展名并查找相同的.min.js文件)。如果找不到,我们将自己进行压缩。

请注意,你必须在值中包含文件扩展名,例如:

"main": "./index" // 这将不起作用
"main": "./index.js" // 这是正确的方式

对于同时有JS和CSS文件的项目,使用上述字段之一用于JS,使用style字段用于CSS文件(示例)。

限制

  • 默认情况下不支持大于150 MB的包或大于20 MB的单个文件(在GitHub的情况下)。我们建议尽可能从包中删除不需要的文件。如果你需要为你的包设置更高的限制,请在此仓库中开一个问题。
  • 出于安全原因,HTML文件以Content-Type: text/plain提供。

WordPress

我们的WordPress端点适用于托管在WordPress.org插件目录Wordpress.org主题目录中的插件和主题,并镜像了WordPress.org插件SVN仓库

从WordPress.org插件SVN仓库加载任何插件:
/wp/project/tags/version/file
加载确切版本:
/wp/wp-slimstat/tags/4.6.5/wp-slimstat.js
加载最新版本(不建议用于生产环境):
/wp/wp-slimstat/trunk/wp-slimstat.js
从WordPress.org主题SVN仓库加载任何主题:
https://cdn.jsdelivr.net/wp/themes/project/version/file
加载文件的确切版本:
https://cdn.jsdelivr.net/wp/themes/twenty-eightteen/1.7/assets/js/html5.js
在任何JS/CSS文件后添加".min"以获取压缩版本 - 如果不存在,我们将为你生成。所有生成的文件都带有源映射,可以在开发过程中轻松使用:
https://cdn.jsdelivr.net/wp/themes/twenty-eightteen/1.7/assets/js/html5.min.js

缓存

我们的缓存逻辑和头信息针对生产使用进行了优化,适用于所有非自定义端点。

  • 静态版本和提交哈希 - 实际上是永久的。缓存头设置为1年,但我们也在S3存储中永久缓存文件。因此,所有绕过CDN的未来请求都将命中我们的S3存储,没有选项或方法更新该文件的内容。
  • 版本别名 - 7天。这也包括latest版本。它们在我们的CDN上缓存7天,可以使用我们的API清除缓存,以加快项目发布到用户的速度。
  • 分支 - 12小时。

在某些情况下,可清除的文件可能会更快地更新,这是由于缓存命中率低或我们出于维护原因强制清除CDN。

即使使用动态URL,如版本别名,我们也使用永久S3缓存,这意味着一旦我们下载了你的标记文件,你就无法更新它们。如果你的最新版本中存在关键问题,最好的做法是用修复程序标记一个新的有效semver版本,并使用我们的清除API清除CDN URL。

清除缓存

jsDelivr有一个易于使用的API,用于从缓存中清除文件并强制文件更新。当你发布新版本并想强制更新所有使用版本别名的用户时,这很有用。

请注意:

  • 它不适用于上面解释的静态文件。
  • 必须使用有效的semver版本才能进行清除
  • 所有用户都适用速率限制

为避免滥用,目前通过电子邮件请求(d@jsdelivr.com)授予清除访问权限。

自定义CDN托管

我们可以合作为你的项目设置自定义配置。这样,你可以完全控制你的文件,并能够利用jsDelivr的全部功能。

这种自定义托管可能适用于:

  • 二进制托管。Windows可执行文件和zip文件。
  • 经常更新的文件。
  • 无法遵循jsDelivr文件结构的项目。
  • 其他一些会让我们大吃一惊的用途。

只需发送电子邮件至d@jsdelivr.com,请求更多信息即可。

目前使用自定义配置的开源项目:

隐私政策

cdn.jsdelivr.net

jsDelivr可能会使用有关下载文件的信息来构建每个项目和每个文件的下载统计信息。

jsDelivr不存储任何用户数据,也不以任何方式跟踪用户。

以下是我们CDN提供商的相关政策:

巴士因子

编辑推荐精选

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

下拉加载更多