1.什么是CDN
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。简而言之提高访问速度。
2.jsDelivr和GitHub配合使用
jsdelivr网址: https://www.jsdelivr.com/?docs=gh
前期准备
配置好SSH Key
创建一个GitHub账号
Git(如果是Windows系统则需要安装Git,Mac自带Git无需安装)
github克隆项目时报错:git@github.com: Permission denied (publickey).
git clone 时出现如下错误:
The authenticity of host 'github.com (127.0.0.1)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
意思是克隆项目时没有权限所以被拒绝了,Github 服务器和我们本地的通讯要使用 SSH key(密钥)来验证,这时只需设置一个密钥就行了。
1.获取SSH Key
打开终端输入 如下命令,然后一直回车(大概是三次 Enter):
ssh-keygen -t rsa -C 'Your Email Address'
终端输入以下命令查看SSH Key:
cat ~/.ssh/id_rsa.pub
此时终端会显示出密钥,然后直接复制密钥粘贴到GitHub设置密钥SSH的key上面然后保存即可。
2.GitHub添加SSH Key
从Github主页右上角点击头像选择Settings,点击进入SSH and GPG keys,点击创建一个新的密钥"New SSH key",Title随便填,Key填入第二步复制的 Key 保存即可。
3.免费CDN:jsDelivr + Github
放在Github的资源在国内加载速度比较慢,因此需要使用CDN加速来优化网站打开速度,jsDelivr + Github便是免费且好用的CDN,非常适合博客网站使用。
3.1新建GitHub仓库
3.2 克隆GitHub仓库到本地
点击 Code、ssh ,一键复制仓库地址到终端 git clone git@github.com:Notys-dev/cdn.git
回车下载。
git clone 你的git仓库地址
建议直接在开发工具中克隆仓库,我使用的是WebStorm,直接在 Terminal 下克隆项目即可:
3.3 上传资源
在开发工具中添加资源到本地git仓库(注:jsDelivr不支持加载超过20M的资源),在本地git仓库目录下依次执行以下命令:
git status //查看状态
git add . //添加所有文件到暂存区
git commit -m '第一次提交' //把文件提交到仓库
git push //推送至远程仓库
3.4 发布仓库
点击 Create a new release 来发布发布
依次填入版本号、标题、描述信息等,若要发布Beta版时可勾选 This is pre-release。
3.5 通过jsdelivr引用资源
使用方法如下:
https://cdn.jsdelivr.net/gh/你的用户名/你的仓库名@发布的版本号/文件路径
例如:https://cdn.jsdelivr.net/gh/Notys-dev/cdn@1.0/img/photo.png
注意:版本号不是必需的,是为了区分新旧资源,如果不使用版本号,将会直接引用最新资源,除此之外还可以使用某个范围内的版本,查看所有资源等,具体使用方法如下:
// 加载任何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/