一、背景
前段时间笔者搭建一个 博客系统 放在服务器上,为了提高访问速度和减轻服务器访问压力,决定将页面中的静态资源使用 CDN 进行加速访问。
二、选择方案
常见的 CDN 方案有 BootCDN 和 jsDelivr ,笔者选择后者。
因为笔者编写的 jQuery 自定义插件,但无法上传到 BootCDN 上进行加速使用。而 jsDelivr 不同,它很强大,通过 GitHub 搭配 jsDelivr 可以搭建自己专属的 CDN 库。
三、实战
接下来将介绍 jsDelivr 与 GitHub 如何搭配使用。
3.1 新建仓库
登录 GitHub 账户,创建新的仓库,仓库名为 cdn-demo,如下图:
3.2 上传资源
将仓库下载下来,添加静态资源文件,笔者添加了 “jquery.min.js” 文件,然后上传到远程仓库,如下图:
3.3 发布版本
GitHub 仓库界面,点击 “tag” -> “Releases” ,操作如下图:
3.5 访问
此时,我们通过如下 url 规则即可访问刚才发布的资源了:
1 | https://cdn.jsdelivr.net/gh/<GitHub 用户名>/<GitHub 仓库名>@<发布的版本号>/<文件路径> |
以上边为例,我们拼接资源的访问路径为: https://cdn.jsdelivr.net/gh/moonlightL/cdn-demo@1.0/jquery.min.js ,请求结果如下图:
访问成功!
四、额外功能
4.1 访问最新文件
其实,不发布版本我们也可以直接访问静态资源。
我们再往远程仓库中添加“bootstrap.css”文件,无需发布新版本,请求 url 规则如下:
1 | https://cdn.jsdelivr.net/gh/<GitHub 用户名>/<GitHub 仓库名>@latest/<文件路径> |
因此,访问“bootstrap.css”文件的 url 为: https://cdn.jsdelivr.net/gh/moonlightL/cdn-demo@latest/bootstrap.css 。
效果如下图:
此请求方式可以实时更新缓存,但官方不推荐使用。
4.2 代码压缩
jsDelivr 还提供了代码压缩服务,将 js 和 css 文件代码进行压缩。
上边我们上传了 “bootstrap.css”,只需将文件名改成 “bootstrap.min.css” 可以访问压缩后的文件资源,如下图:
4.3 资源列表
查看 jsDelivr 中的 CDN 资源列表
1 | https://cdn.jsdelivr.net/gh/<GitHub 用户名>/<GitHub 仓库名>/ |
五、注意事项
- GitHub 单文件上传限制为 100M,但是 jsdelivr 加速的单文件大小为 50M,因此尽量不要上传大文件。