热搜词
发表于 2021-10-14 09:50:21 | 显示全部楼层 |阅读模式
jsDelivr 为开发者提供免费公共 CDN 加速服务
01.png


开发者或网站管理者时常会用到一些 JavaScript Libraries,例如最常见的 jQuery 或字型和 CSS 框架,通常不建议自己在服务器存储这些文件,因为除了耗流量,也可能因此拖慢网站的载入速度。为了解决这种情况,有些人会选择从 [Google Hosted Libaries ] (https://developers.google.com/speed/libraries/ )或 [Microsoft Ajax Content Delivery Network] (https://www.asp.net/ajax/cdn ) 来拉文件,但因为中国特殊网络环境(GFW)的原因,Google Hosted Libraries等服务是没法直接用的。

本文要介绍的 [jsDelivr](https://www.jsdelivr.com/ ) 是一个免费、开放原始码的公有 CDN 服务,托管了许多大大小小的 JavaScript、CSS 等 libraries,除了在内容部分有相当高的完整性,jsDelivr 跟其他同类型服务还有什么不同之处呢?

jsDelivr 将重心放在更快速的网路连线,利用 CDN 技术来确保每个地区的使用者都能获得最好的连线速度。依据 jsDelivr 的说明,它们也是首个「打通中国大陆与海外的免费 CDN 服务」,网页开发者无须担心GFW问题而影响连线(不会像之前中国大陆无法使用 [Google Hosted Libaries ](https://developers.google.com/speed/libraries/ ) 必须用 [libs.useso.com](https://free.com.tw/libs-useso-com/ ") 替代)。

此外,jsDelivr 可将不同的 JavaScript 或 CSS libraries 整合在一起,透过一段链结来载入网站,非常方便!如果你正在寻找类似服务,jsDelivr 是个不错的选择。

使用方法

jsDelivr提供npm,GitHub,WordPress等项目的镜像。

对于新手来说,可能翻译来自jsDelivr官方的使用方法感觉很复杂,其实可以简单一点告诉大家怎么用。

比如在我的网站主题中会用到这样的一个CSS文件:style.css

如果我使用本地文件,网站中载入的文件是:

  1. https://mywebsite.com/wp-content/themes/mytheme/static/css/style.css
复制代码

如果我把主题托管到github,那么在我的github中也会有这一个文件:

  1. https://github.com/mygitname/mywebsite/tree/master/static/css/style.css
复制代码

若我Releases一个版本0.0.1,那github中会有这样的文件:

  1. https://github.com/mygitname/mywebsite/tree/0.0.1/static/css/style.css
复制代码

如果我要使用jsDelivr托管此文件,那只需要将网站中载入的本地文件链接更换为jsDelivr CDN的链接,格式如下(gh代表github):

  1. https://cdn.jsdelivr.net/gh/mygitname/mywebsite@0.0.1/static/css/style.css
复制代码

若要使用缩小版本功能,则将“.min”添加到任何JS / CSS文件中,jsdelivr将自动生成文件。

  1. https://cdn.jsdelivr.net/gh/mygitname/mywebsite@0.0.1/static/css/style.min.css
复制代码

以下是官方介绍:

npm CDN
加载npm上托管的任何项目
https://cdn.jsdelivr.net/npm/package@version/file

加载文件的确切版本
https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js

使用版本范围而不是确切版本
https://cdn.jsdelivr.net/npm/jquery@3/dist/jquery.min.js
https://cdn.jsdelivr.net/npm/jquery@3.1/dist/jquery.min.js
如果您使用此功能,并且您所请求的文件在最新版本的软件包中不可用,则由于jsdelivr的版本回退功能,该链接将继续工作。jsdelivr将继续从旧版本的软件包中提供该文件,而不是因为404错误而失败。

按标签加载(不建议用于生产用途)
https://cdn.jsdelivr.net/npm/jquery@beta/dist/jquery.min.js
完全省略版本或使用“latest”加载最新版本(不推荐用于生产用途)
https://cdn.jsdelivr.net/npm/jquery@latest/dist/jquery.min.js
https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js
请求最新版本
(而不是“最新专业版”或“最新版本”)是危险的,因为主要版本通常会带来重大变化。只有你真的知道自己在做什么才这样做。

将“.min”添加到任何JS / CSS文件以获得缩小版本 – 如果不存在,jsdelivr将为您生成它。所有生成的文件都带有源映射,可以在开发过程中轻松使用:

https://cdn.jsdelivr.net/npm/git ... ub-markdown.min.css
缩小大文件可能需要几秒钟。但是,jsdelivr将所有生成的文件存储在永久存储中,因此此延迟仅适用于前几个请求。
省略文件路径以获取默认文件(目前不推荐)。此文件始终缩小:

https://cdn.jsdelivr.net/npm/jquery@3.2.1
https://cdn.jsdelivr.net/npm/jquery@3
https://cdn.jsdelivr.net/npm/jquery
如果默认文件不直接位于程序包的根目录中,则使用此功能可能会导致相对导入出现问题,例如源映射,图像或请求的文件引用的字体文件。

获取目录列表
https://cdn.jsdelivr.net/npm/jquery@3.2.1/
https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/

GitHub CDN
建议将npm用于支持更好用户体验的项目 – 在jsdelivr网站上可以搜索npm包,并且包页面显示其他有用信息,例如描述和主页链接。
jsdelivr使用永久S3存储来确保所有文件仍然可用,即使GitHub发生故障,或者作者删除了存储库或版本。仅在第一次直接从GitHub获取文件,或者当S3关闭时。
加载任何GitHub版本,提交或分支:

https://cdn.jsdelivr.net/gh/user/repo@version/file
加载文件的确切版本
https://cdn.jsdelivr.net/gh/jque ... /dist/jquery.min.js
https://cdn.jsdelivr.net/gh/jque ... /dist/jquery.min.js
使用版本范围而不是确切版本
https://cdn.jsdelivr.net/gh/jquery/jquery@3.2/dist/jquery.min.js
https://cdn.jsdelivr.net/gh/jquery/jquery@3/dist/jquery.min.js
如果您使用此功能,并且最新版本中未提供您请求的文件,则由于jsdelivr的版本回退功能,该链接将继续有效。jsdelivr将继续从旧版本提供该文件,而不是因为404错误而失败。
完全省略版本或使用“latest”加载最新版本(不推荐用于生产用途):

https://cdn.jsdelivr.net/gh/jque ... /dist/jquery.min.js
https://cdn.jsdelivr.net/gh/jquery/jquery/dist/jquery.min.js
请求最新版本(而不是“最新专业版”或“最新版本”)是危险的,因为主要版本通常会带来重大变化。只有你真的知道自己在做什么才这样做。
将“.min”添加到任何JS / CSS文件以获得缩小版本 – 如果不存在,我们将为您生成它。所有生成的文件都带有源映射,可以在开发过程中轻松使用:

https://cdn.jsdelivr.net/gh/jquery/jquery@3.2.1/src/core.min.js
缩小大文件可能需要几秒钟。但是,jsdelivr将所有生成的文件存储在永久存储中,因此此延迟仅适用于前几个请求。

获取目录列表
https://cdn.jsdelivr.net/gh/jquery/jquery@3.2.1/
https://cdn.jsdelivr.net/gh/jquery/jquery@3.2.1/dist/
合并多个文件
jsdelivr的组合端点允许您在一个请求中从npm和GitHub端点加载多个文件:

https://cdn.jsdelivr.net/combine/url1,url2,url3
适用于单个文件的所有功能(版本范围,缩小等)也适用于此处。所有组合文件都带有源映射,可以在开发过程中轻松使用。

https://cdn.jsdelivr.net/combine ... /dist/jquery.min.js,gh/twbs/bootstrap@3.3/dist/js/bootstrap.min.js
https://cdn.jsdelivr.net/combine ... s/bootstrap.min.css,npm/bootstrap@3.3/dist/css/bootstrap-theme.min.css
组合大/多个文件可能需要几秒钟。但是,jsdelivr将所有生成的文件存储在永久存储中,因此此延迟仅适用于前几个请求。

WordPress CDN
从WordPress.org插件SVN repo加载任何插件
https://cdn.jsdelivr.net/wp/plugins/project/tags/version/file
加载文件的确切版本
https://cdn.jsdelivr.net/wp/plug ... .6.5/wp-slimstat.js
加载最新版本(不建议用于生产用途)
https://cdn.jsdelivr.net/wp/plug ... runk/wp-slimstat.js
请求最新版本是危险的,因为新版本可能会带来重大变化。只有你真的知道自己在做什么才这样做。

从WordPress.org主题SVN repo加载任何主题
https://cdn.jsdelivr.net/wp/themes/project/version/file
加载文件的确切版本
https://cdn.jsdelivr.net/wp/them ... /assets/js/html5.js

参考资料
https://free.com.tw/jsdelivr/
https://www.jsdelivr.com/features


全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-12-23 05:42 , Processed in 0.200267 second(s), 25 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team