开发者或网站管理者时常会用到一些 JavaScript Libraries,例如最常见的 jQuery 或字型和 CSS 框架,通常不建议自己在服务器存储这些文件,因为除了耗流量,也可能因此拖慢网站的载入速度。为了解决这种情况,有些人会选择从 [Google Hosted Libaries ](https://developers.google.com/speed/libraries/ "Google Hosted Libaries ")或 [Microsoft Ajax Content Delivery Network](https://www.asp.net/ajax/cdn "Microsoft Ajax Content Delivery Network") 来拉文件,但因为中国特殊网络环境(GFW)的原因,Google Hosted Libraries等服务是没法直接用的。
本文要介绍的 [jsDelivr](https://www.jsdelivr.com/ "jsDelivr") 是一个免费、开放原始码的公有 CDN 服务,托管了许多大大小小的 JavaScript、CSS 等 libraries,除了在内容部分有相当高的完整性,jsDelivr 跟其他同类型服务还有什么不同之处呢?
jsDelivr 将重心放在更快速的网路连线,利用 CDN 技术来确保每个地区的使用者都能获得最好的连线速度。依据 jsDelivr 的说明,它们也是首个「打通中国大陆与海外的免费 CDN 服务」,网页开发者无须担心GFW问题而影响连线(不会像之前中国大陆无法使用 [Google Hosted Libaries ](https://developers.google.com/speed/libraries/ "Google Hosted Libaries ") 必须用 [libs.useso.com](https://free.com.tw/libs-useso-com/ "libs.useso.com") 替代)。
此外,jsDelivr 可将不同的 JavaScript 或 CSS libraries 整合在一起,透过一段链结来载入网站,非常方便!如果你正在寻找类似服务,jsDelivr 是个不错的选择。
使用方法
jsDelivr提供npm,GitHub,WordPress等项目的镜像。
对于新手来说,可能翻译来自jsDelivr官方的使用方法感觉很复杂,其实可以简单一点告诉大家怎么用。
比如在我的网站主题中会用到这样的一个CSS文件:style.css
如果我使用本地文件,网站中载入的文件是:
https://mywebsite.com/wp-content/themes/mytheme/static/css/style.css
如果我把主题托管到github,那么在我的github中也会有这一个文件:
https://github.com/mygitname/mywebsite/tree/master/static/css/style.css
若我Releases一个版本0.0.1,那github中会有这样的文件:
https://github.com/mygitname/mywebsite/tree/0.0.1/static/css/style.css
如果我要使用jsDelivr托管此文件,那只需要将网站中载入的本地文件链接更换为jsDelivr CDN的链接,格式如下(gh代表github):
https://cdn.jsdelivr.net/gh/mygitname/mywebsite@0.0.1/static/css/style.css
若要使用缩小版本功能,则将“.min”添加到任何JS / CSS文件中,jsdelivr将自动生成文件。
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/github-markdown-css@2.4.1/github-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/jquery/jquery@3.2.1/dist/jquery.min.js https://cdn.jsdelivr.net/gh/jquery/jquery@32b00373b3f42e5cdcb709df53f3b08b7184a944/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/jquery/jquery@latest/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/gh/jquery/jquery@3.2/dist/jquery.min.js,gh/twbs/bootstrap@3.3/dist/js/bootstrap.min.js https://cdn.jsdelivr.net/combine/npm/bootstrap@3.3/dist/css/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/plugins/wp-slimstat/tags/4.6.5/wp-slimstat.js
加载最新版本(不建议用于生产用途)
https://cdn.jsdelivr.net/wp/plugins/wp-slimstat/trunk/wp-slimstat.js
请求最新版本是危险的,因为新版本可能会带来重大变化。只有你真的知道自己在做什么才这样做。
从WordPress.org主题SVN repo加载任何主题
https://cdn.jsdelivr.net/wp/themes/project/version/file
加载文件的确切版本
https://cdn.jsdelivr.net/wp/themes/twenty-eightteen/1.7/assets/js/html5.js
参考资料
https://free.com.tw/jsdelivr/
https://www.jsdelivr.com/features
原文链接:https://blog.csdn.net/larpland/article/details/101349605
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/7285