优雅使用Jsdelivr/CDN加速博客访问速度
前言
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等文件(经常改动文件)
建议使用版本号方式,因为发布后可以及时更新到
优雅使用Jsdelivr/CDN加速博客访问速度相关推荐
- 使用Jsdelivr CDN加速博客访问速度
文章目录 CDN加速 1.首先新建GitHub仓库 2.本地新建本地工作区 3.发布仓库 CDN加速 CDN的全称是Content Delivery Network,即内容分发网络.CDN是构建在网络 ...
- 猿创征文|hexo博客访问速度优化:vercel+又拍云CDN
hexo博客访问速度优化:vercel+又拍云CDN 前言 为了追求博客访问速度,还是决定把博客挂上又拍云CDN,之前已经申请了又拍云联盟,每个月送15GB的CDN流量,关键还是HTTPS的.对于我这 ...
- Jsdelivr CDN 加速服务又被 DNS 污染了(附临时解决方案)
近两天写博客的时候发现 Jsdelivr 的 CDN 加速服务用不了,具体表现为添加 Jsdelivr CDN 的链接无法访问. 这里给个例子: GitHub 图片原链接(访问有点慢) https:/ ...
- ripro主题后台Jsdelivr CDN 加速服务挂了的临时解决方案。
近两天写博客的时候ripro后台的图标都没法显示了,查了一下发现ripro后台用的是Jsdelivr 的 CDN 加速服务,而最近两天Jsdelivr CDN正好在大陆无法访问了,只能临时解决一下. ...
- 解决coding上的hexo博客访问不了的问题
解决coding上的hexo博客访问不了的问题 参考文章: (1)解决coding上的hexo博客访问不了的问题 (2)https://www.cnblogs.com/senup/p/12118336 ...
- 纪念博客访问破百万!
是的,如题所示,博客访问破百了!这是在写博客之初想都不敢想的大事,没想到就在这么一个平平淡淡的日子成功实现,像往常一样平淡的天气和像往常一样平淡的工作. 最刚开始写博客,只是偶然想记录下自己的所得所获 ...
- jsdelivr cdn大陆挂了不能访问替代方案
[查看原文] 今天是2021.12.20,jsdelivr cdn大陆挂了不能访问了 jsdelivr挂了, npm库替换 如果你使用的是npm库,使用unpkg.com替换! 什么?unpkg太慢了 ...
- 使用Nginx反向代理和proxy_cache缓存搭建CDN服务器加快Web访问速度
碰到问题:移动用户访问web服务器www.osyunwei.com很慢 解决办法: 1.在移动机房放置一台nginx反向代理服务器 2.通过域名DNS智能解析,所有移动用户访问www.osyunwei ...
- 如何通过CDN加速网站的访问?
CDN工作原理 CDN的工作原理就是将您源站的资源缓存到位于全国各地的CDN节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免网络拥塞.分担源站压力,保证用 ...
最新文章
- 学习Windows Phone手机开发:Tile的使用
- 机器人学习--视觉定位数据集介绍
- EL表达式和标准标签库
- update table with temprary table
- 如何在运行时打印出 SAP Spartacus 配置(config)信息
- 台州银行登录显示服务器异常,台州银行网上银行异常问题处理
- Windows 10 常用的快捷键及常用指令
- leetcode 55. 跳跃游戏 思考分析
- 如何选择合适的商业智能BI软件
- mui 中template 的使用
- 正则表达式限制文本框内容
- C语言中static的使用
- Install R language on Linux RHEL5 or RHEL6
- python 包之 Pygame 游戏开发教程
- 我在 CMU 的八年博士生涯...
- VIJOS P1540 月亮之眼
- windows桌面ui开发
- android m是什么版本号,Android M版本号确定,并不是Android 6.0
- **Mybatis怎么自动生成Mapper文件和实体类**
- android高德地图后台运行,Android手把手教你集成高德地图
热门文章
- 0x01 前情提要随着疫情反复,今天我在家办公。我需要登一台服务器上配置,但是那个地址只能通过深信服vpn连接,在家办公一天就带了台kali系统的笔记本回来,没带windows的。 kali上
- VMware 无法将值写入注册表项
- 高通WLAN框架学习(27)-- Types of regulatory 和WCNSS_qcom_cfg.ini配置参数
- C#打包文件夹成zip格式(包括文件夹和子文件夹下的所有文件)
- google退出后产生的影响
- Node.js基础入门
- 前淘宝工程师:12306几乎是一个奇迹
- java graphics 渐变色_使用BufferedImage进行渐变色操作
- 机械设备网站建设多少钱
- 芯片程序保护-常规芯片加密方式