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写作工具学术助手办公助手营销助手AI助手
Trae

Trae

字节跳动发布的AI编程神器IDE

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

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多