前言
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。——百度百科
说明:我们把博客文件部署到github上难免会加载起来很慢,但是并不是没有办法滴。优雅使用CDN加速来优化网站打开速度,jsDelivr /cdn + Github。
开始操作
前期准备
- 一个 Github 账号
- 可以登录 GitHub
- 懂得如何向 GitHub 仓库 push 文件
关于 Github 仓库可以新建,也可以使用 <用户名>.github.io 这个仓库。这里我就新建一个仓库为例。
正式开始
-
新建创库
仓库名称与描述自定义,但仓库一定要公开,不能是私有哦!
创建完创库后我们可以用命令行初始化创库,具体操作创建完创库会给出提示怎么做的了,我这里教你本地上传文件,再次上传只需要拖到初始化的文件夹上传就OK了。
-
本地新建一个文件夹,文件夹名称自定义,然后进入文件夹,在文件夹内依次执行下面的命令
-
接着在本地新建的文件下,右击->git bash,请确认你已安装git分布系统了
git init
git remote add origin 你新建仓库的HTTP或者SSH地址链接
git pull origin master #将仓库拉取到本地文件夹
然后呢,把你要上传的文件放进这个文件夹内(可以多层目录滴)
4.上传文件,依次执行下面的命令
git add . #(.表示所有的)
git commit -m '添加文件内容描述'
git push origin master #将本地仓库文件推送到GitHub新建的仓库
- 然后呢,到github仓库库预览效果,若能看到上传的文件则说明推送成功了,接下来发布仓库->点击release,进行版本的发布
6. 自定义发布版本号,添加标题和描述等即可
7. 通过jsdelivr引用资源
-
使用方法:https://cdn.jsdelivr.net/gh/你的用户名/你的仓库名@发布的版本号/文件及路径
-
例如:https://cdn.jsdelivr.net/gh/chuchendjs/HexoStaticFlie@1.0/butterfly/css/friendlink.css
注意:版本号不是必需的,是为了区分新旧资源,如果不使用版本号,将会直接引用最新资源
- 若再次仓库里添加或者修改文件,首先把文件添加到本地仓库,然后依次在本地仓库文件位置执行以下命令:
git pull origin master #拉取远程仓库到本地
git add .
git commit -m '描述内容'
git push origin master # 推送到GitHub仓库
常见问题
以上的方式简单粗暴,上传即可,但是这种方式存在几个问题。
JSD 的链接是什么
在我上图的链接为 https://cdn.jsdelivr.net/gh/chuchuendjs/HexoStaticFile/css/friendlink.css,但是并不意味着 JSD 只有这一种引用方式。
- 直接引用
格式为:https://cdn.jsdelivr.net/gh/<用户名>/<仓库名>/<文件及路径>
例如: https://cdn.jsdelivr.net/gh/chuchuendjs/HexoStaticFile/css/friendlink.css - 分支及版本号
分支与版本号加到仓库后,用 @符链接。
格式为: https://cdn.jsdelivr.net/gh/<用户名>/<仓库名>@[分支/版本号]/<文件及路径>
分支名 | 描述 | 特点 |
---|---|---|
普通分支 | 即 GitHub 的分支,可以创建多个,默认为 master | 按分支引用 |
latest | 最后一次提交 | 每上传一个新文件,都可以用这个分支引用。即不加版本号的默认情况。 |
版本号 | 指定版本的内容,需配合版本发布 | 已发布的版本不会受到仓库内容变化的影响 ,上面已经展示了如何引用 |
关于缓存问题
据我所知,不仅与分支有关系且与文件名有关系。文件名为 * .min. * 或者是 * *,也就是带 min 的和不带 min 的。这里我以 index.min.css 和 index.css 为例。
- index.css
分支 | 首次上传 | 能否及时更新 | 缓存天数 |
---|---|---|---|
master | 可以被引用 | 第一次 push 和第一次修改可以更新 | 可能 1 天 |
latest | 可以被引用 | 与 master 分支几乎一致 | 可能 1 天 |
版本号 | 发布版本后引用 | 发布后及时更新 | 每个版本独立 |
- index.min.css
分支 | 第一次上传 | 能否及时更新 | 缓存天数 |
---|---|---|---|
master | 可以被引用 | 第一次 push 可以更新 | 可能 1 天 |
latest | 可以被引用 | 第一次 push 和第一次修改可以更新 | 可能 1 天 |
版本号 | 发布版本后引用 | 发布后及时更新 | 每个版本独立 |
文件是否有限制
-
GitHub 公开仓库大小为 100GB,所以不用担心不够用的问题了。并且你可以创建无数个仓库哟!
注意:100GB 我们并不能全用完滴,可能每个仓库不能超过 1G。超过 1G 后会有人工审核仓库内容,若发现用来做图床,轻则删库,重则封号
建议在 1G 之前就应该换个仓库了!
-
文件大小
Github 单文件上传为 100M,但是 JSD 加速的单文件大小为 50M。所以也就意味着单文件大小为50MB 。
-
文件类型
图片视频静态文件基本都是可以滴。
总结
-
图床(不需要修改文件)
使用 latest 分支或者 master分支即可。
-
静态文件仓库,即 css,js等文件(经常改动文件)
建议使用版本号方式,因为发布后可以及时更新到