前言

CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。——百度百科

说明:我们把博客文件部署到github上难免会加载起来很慢,但是并不是没有办法滴。优雅使用CDN加速来优化网站打开速度,jsDelivr /cdn + Github。

开始操作

前期准备

  • 一个 Github 账号,并且可以登录
  • 会git向 GitHub 仓库 push 文件

关于 Github 仓库可以新建,也可以使用 <用户名>.github.io 这个仓库。这里我就以新建一个仓库为例。

正式开始

  1. 新建创库

    仓库名称与描述自定义,但仓库一定要公开,不能是私有哦!

    创建完创库后我们可以用命令行初始化创库,具体操作创建完创库会给出提示怎么做的了,我这里教你本地上传文件,再次上传只需要拖到初始化的文件夹上传就OK了。

  2. 本地新建一个文件夹,文件夹名称自定义,然后进入文件夹,在文件夹内依次执行下面的命令

  3. 接着在本地新建的文件下,右击->git bash,请确认你已安装git分布系统了

    1
    2
    3
    git init
    git remote add origin 你新建仓库的HTTP或者SSH地址链接
    git pull origin master #将仓库拉取到本地文件夹

    然后呢,把你要上传的文件放进这个文件夹内(可以多层目录滴)

    在这里插入图片描述

上传文件

依次执行下面的命令

1
2
3
git add .    #(.表示所有的)
git commit -m '添加文件内容描述'
git push origin master #将本地仓库文件推送到GitHub新建的仓库
  1. 到github仓库库预览效果,若能看到上传的文件则说明推送成功了,接下来发布仓库->点击release,进行版本的发布

  2. 自定义发布版本号,添加标题和描述等即可
    在这里插入图片描述

  3. 通过jsdelivr引用资源

注意:版本号不是必需的,是为了区分新旧资源,如果不使用版本号,将会直接引用最新资源

再次仓库添加或者修改文件

首先把文件添加到本地仓库,然后依次在本地仓库文件位置执行以下命令:

1
2
3
4
git pull origin master  #拉取远程仓库到
git add .
git commit -m '描述内容'
git push origin master # 推送到GitHub仓

单独上传某个文件

只针对环境已经部署,并且之前已经将全部文件上传成功的情况下

  1. 检测本地修改过的文件(git status
    红色部分则是修改过的文件
    显而易见,红色部分则是修改过的文件。
  2. 添加修改过的文件到索引库(git add -u
  3. 再次检测(git status
  4. 将修改从暂存区提交到本地版本库(git commit -m “modify”
  5. git push origin master 推送到GitHub仓
  6. 不出意外的话,就已经成功推送,可以去github仓库一览

常见问题

以上的方式简单粗暴,上传即可,但是这种方式存在几个问题。

JSD 的链接是什么

在我上图的链接为 https://cdn.jsdelivr.net/gh/chuchuendjs/HexoStaticFile/css/friendlink.css,但是并不意味着 JSD 只有这一种引用方式。

  1. 直接引用
    格式为:https://cdn.jsdelivr.net/gh/<用户名>/<仓库名>/<文件及路径>
    例如: https://cdn.jsdelivr.net/gh/chuchuendjs/HexoStaticFile/css/friendlink.css
  2. 分支及版本号

分支与版本号加到仓库后,用 @符链接。
格式为: 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 天
    版本号 发布版本后引用 发布后及时更新 每个版本独立

文件是否有限制

  1. GitHub 公开仓库大小为 100GB,所以不用担心不够用的问题了。并且你可以创建无数个仓库哟!

    注意:100GB 我们并不能全用完滴,可能每个仓库不能超过 1G。超过 1G 后会有人工审核仓库内容,若发现用来做图床,轻则删库,重则封号。 建议在 1G 之前就应该换个仓库了!

  2. 文件大小

    Github 单文件上传为 100M,但是 JSD 加速的单文件大小为 50M。所以也就意味着单文件大小为50MB

  3. 文件类型

    图片视频静态文件基本都是可以滴。

总结

  • 图床(不需要修改文件)

    使用 latest 分支或者 master分支即可。

  • 静态文件仓库,即 css,js等文件(经常改动文件)

    建议使用版本号方式,因为发布后可以及时更新到