如何使用jsDelivr+Github 实现免费CDN加速?

如何使用jsDelivr+Github 实现免费CDN加速?序言个人采用 hexo 搭建了博客 博客也刚上线不久 博客地址 https www xiezhrspace cn 欢迎小伙伴访问 疯狂暗示来关注来访问 虽然放到了云服务器上 但是由于博客上传的图片等资源越来越多 请求的资源也越来越多 博客访问速度越来越慢 简直不忍直视 愁了好久 一直在想办法优化 自己在网上也找资料 在和博客交流群的小伙伴交流后便有了解决方案 使用 cdn 加速 但是呢问题又来了 很多云服务提供商的 cdn 加速都是要根据流量花钱的 虽然网站访问量不多 但是呢能白嫖当

如何使用jsDelivr+Github 实现免费CDN加速?

序言

个人采用hexo搭建了博客,博客也刚上线不久,博客地址:https://www.xiezhrspace.cn 。 欢迎小伙伴访问,疯狂暗示来关注来访问(‐^▽^‐)。

虽然放到了云服务器上,但是由于博客上传的图片等资源越来越多,请求的资源也越来越多,博客访问速度越来越慢,简直不忍直视。

愁了好久,一直在想办法优化,自己在网上也找资料,在和博客交流群的小伙伴交流后便有了解决方案,【使用cdn加速】。

但是呢问题又来了,很多云服务提供商的cdn加速都是要根据流量花钱的。虽然网站访问量不多,但是呢能白嫖当然是最好的了。

在小伙伴推荐后有了两种白嫖方案 1、jsDelivr+Github 2、又拍云(需要申请账号加入又拍云联盟,个人的申请还未下来)。都说又拍云加速会更好一些,但是自己的申请还没办好,而博客访问优化又迫在眉睫,固先采用了第一个方案:jsDelivr+Github 的方案。

下面就以jsDelivr+Github 实现免费cdn加速为例,记录自己优化过程。

1 cdn简介

cdn 全称Content Delivery Network即内容分发网络。

CDN是一组分布在多个不同地方的WEB服务器,可以更加有效的向用户提供资源,会根据距离的远近来选择 。使用户能就近的获取请求数据,解决网络拥堵,提高访问速度,解决由于网络带宽小,用户访问量大,网点分布不均等原因导致的访问速度慢的问题。

2 cdn请求分发原理

cdn分发原理图

(1)用户向浏览器提供需要访问的域名;

(2)浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际的IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用的全局负载均衡DNS解析。如根据地理位置信息解析对应的IP地址,使得用户能就近访问;

(3)此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的ip地址之后,向缓存服务器发出访问请求;

(4)缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;

(5)缓存服务器从实际IP地址得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据放回给客户端,完成数据服务过程;

(6)客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。

3 jsDelivr简介

是一个免费、快速和可信赖的CDN加速服务,声称它每个月可以支撑680亿次的请求。服务在Github上是开源的,jsDelivr地址 。目前,它提供了针对npm、Github和WordPress的加速服务,只需要一行代码就可以获得加速效果。只要我们的项目中用到了第三方的静态资源,譬如JavaScript脚本,css样式表,图片,图标,Flash等静态资源文件都应该考虑接入到CDN中

4.jsDelivr 的简单使用

我们以加载jQuery和Bootstrap 为例

// load jQuery v3.2.1 https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js // load bootstrap v4.4.1 https://cdn.jsdelivr.net/npm/bootstrap@4.4.1/dist/js/bootstrap.js 

jsDelivr + Github便是免费且好用的CDN,非常适合博客网站使用

5 jsDelivr + Github 的具体实现

5.1 新建Github仓库

如何使用jsDelivr+Github 实现免费CDN加速?

5.2 使用git clone 命令将仓库克隆到本地

如何使用jsDelivr+Github 实现免费CDN加速?

在要放仓库的本地目录右键 Git Bash Here(如果没有安装git的需要提前安装下,都是默认安装即可),并输入以下命令

git clone https://github.com/xiezhr/mycdn.git 
$ git clone https://github.com/xiezhr/mycdn.git Cloning into 'mycdn'... remote: Enumerating objects: 3, done. remote: Counting objects: 100% (3/3), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (3/3), done. 

5.3 将需要cdn加速的资源上传到github仓库

需要用到的命令如下

git add . //添加所有文件到暂存区 git status //查看状态 git commit -m '第一次提交' //把文件提交到仓库 -m 后面的是备注信息 git push //推送至远程仓库 

5.4 点击release 发布版本

如何使用jsDelivr+Github 实现免费CDN加速?
自定义发布版
如何使用jsDelivr+Github 实现免费CDN加速?




5.5 通过jsDelivr引用资源

通过如下地址应用资源

https://cdn.jsdelivr.net/gh/你的用户名/你的仓库名@发布的版本号/文件路径 

举个栗子,获取source/bgimg路径下的back-rain.png

https://cdn.jsdelivr.net/gh/xiezhr/mycdn/source/bgimg/back-rain.png 获取最新资源 https://cdn.jsdelivr.net/gh/xiezhr/mycdn@1.0/source/bgimg/back-rain.png 获取1.0版本的资源 

注意: 版本号不是必需的,是为了区分新旧资源,如果不使用版本号,将会直接引用最新资源,除此之外还可以使用某个范围内的版本,查看所有资源等,具体使用方法如下:

// 加载任何Github发布、提交或分支 https://cdn.jsdelivr.net/gh/user/repo@version/file // 加载 jQuery v3.2.1 https://cdn.jsdelivr.net/gh/jquery/jquery@3.2.1/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 // 完全省略该版本以获取最新版本 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 // 在末尾添加 / 以获取资源目录列表 https://cdn.jsdelivr.net/gh/jquery/jquery/ 

6 将hexo中用到静态资源的地方换成cdn加速

# 使用到的前端库,可按需替换成对应的CDN地址,如果下面未指定具体的版本号,使用最新的版本即可. # 注:jsdelivr可以自动帮你生成.min版的js和css,所以你在设置js及css路径中可以直接写.min.xxx libs: css: matery: https://cdn.jsdelivr.net/gh/xiezhr/mycdn/source/css/matery.css mycss: https://cdn.jsdelivr.net/gh/xiezhr/mycdn/source/css/my.css fontAwesome: https://cdn.jsdelivr.net/gh/xiezhr/mycdn/source/libs/awesome/css/all.css # V5.11.1 materialize: https://cdn.jsdelivr.net/gh/xiezhr/mycdn/source/libs/materialize/materialize.min.css # 1.0.0 aos: https://cdn.jsdelivr.net/gh/xiezhr/mycdn/source/libs/aos/aos.css 

都换好之后,执行如下命令

hexo cl & hexo g & hexo s 

浏览器地址栏输入 http://localhost:4000 访问博客,你会发下博客访问速度快了很多。到此大功告成!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200248.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午11:13
下一篇 2026年3月20日 上午11:14


相关推荐

  • java 四舍五入保留小数点后两位

    java 四舍五入保留小数点后两位方式一:doublef=3.1516;BigDecimalb=newBigDecimal(f);doublef1=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();输出结果f1为3.15;源码解读:  publicBigDecimalsetScale(intnewScale,introundingMode)//intnewScale为小数点后保留的位数,introundingMode为变量进

    2022年5月21日
    1.2K
  • P2939 [USACO09FEB]改造路Revamping Trails(分层图最短路)「建议收藏」

    P2939 [USACO09FEB]改造路Revamping Trails(分层图最短路)「建议收藏」P2939 [USACO09FEB]改造路Revamping Trails(分层图最短路)

    2022年4月20日
    179
  • 8位双向移位寄存器verilog设计

    8位双向移位寄存器verilog设计系统功能设计一个8位双向移位寄存器,实现并行输入数据、数据左移、右移、清空数据的功能。程序主要包括移位寄存器模块和按键去抖模块①Key1控制拨码输入:a)key_flag1,key_state1实现Key1去抖(if(key_flag1&&(!key_state1)));b)key_cnt[3:0]从0开始在每一次Key1按下后加1,累积到3后再按下Key1,key_cnt清零;c)en_num1为高4位输入使能信号,en_num2为低4位输入使能信

    2022年7月16日
    17
  • 微信小程序必用接口「建议收藏」

    微信小程序必用接口获取openiduni-app示例获取openidopenid是微信用户的一个唯一的标识,只针对当前的微信号有效。微信开发时,用户使用小程序需要授权,这时就要用到openid进行绑定这个用户。可用于永久标记一个用户,同时也是微信JSAPI支付的必传参数。一般都是将code值传到后端去获取openid,因为在前端可能会被抓包或爬取到你的appid和secret,不安全,如果放在后端获取openid,除非你的服务器被攻击了,不然就是安全的。下面的实例是在前端直接获取的,这个明白后,可

    2022年4月11日
    43
  • 女生学Java好学吗?适合学习吗?

    女生学Java好学吗?适合学习吗?女生学 Java 好学吗 适合学习吗 这个问题一直存在女生的疑问中 确实 在思维逻辑方面上可能女生并不如男生 在工作中也会存在一定的劣势 作为日后的编程开发者对于思维逻辑的能力要求还是很高的 虽然女生在这方面处于劣势 但女生们也有女生们的优势 比如更加细心 更加耐心 这两点就可以足够证明女生在编程生不容易出错 所以这一点来说女生也是比较适合学习 Java 编程的 都已经 2021 年了 市面上的 Java 培训太多太多 只要能找到一家靠谱的机构 有专业的老师带着学习 女生也是可以很快速的融入其中培养自己的思维逻辑能力的

    2026年3月18日
    2
  • 六、策略模式—旅行的交通工具 #和设计模式一起旅行#[通俗易懂]

    兵无常势,水无常形,能因敌变化而取胜者,谓之神! ——《孙子兵法》故事背景旅行开始,我和设计模式mm要去的目的地很多,去往不同目的地可以选择的交通工具也是多样的,从北京到上海,我们可以选择自驾游、乘坐飞机、高铁,甚至是骑单车等等方式!每一种交通工具到达目的的时间也不同,假如从北京到上海,乘坐飞机两个小时,高铁五个小时,自驾游3天(3*24小时),每一种交通费也不一样!假…

    2022年2月27日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号