加速访问基于 Github Pages 和 Hexo 的博客
本文探讨如何加速访问基于 Github Pages 和 Hexo 的博客。大家搭建博客广泛采用了 Hexo + NexT + Github Pages 的方式。众所周知,这种类型的博客未经优化,打开速度比较慢,本文探讨优化的方法,包括修改依赖的字体资源,更换博客托管平台等方式,加速博客的访问。
1. 探索 Hexo + NexT 的博客打开速度比较慢的原因
由于我本人原本就比较重视博客的打开速度,所以博客中使用的资源均已进行了不同程度的优化。比如博文中的图片均外链于图床「简书、七牛等」,博客的头像和网站的图标均优化了分辨率和画质,关闭了所有 NexT 自带的动画效果等。
经过上述优化后,打开我的博客,通过 Chrome 的开发者工具可以看到,访问博客所请求的资源大多均可在 1 秒内获得相应,但是其中仍然有三个资源请求失败:
三个 HTTP 请求失败通过查询这些 HTTP 请求,可以发现,请求失败的原因是无法从 Google 的服务器中获取到 Lato 字体相关的资源「翻墙后可正常获取这些资源文件」:
Lato 字体资源无法获取2. 修改博客所依赖的字体资源
打开 NexT 的主题配置文件「_config.yml」,找到如下图所示的字体设置区域,删除全局字体族「Lato」。
NexT 主题的字体族设置之后再次访问博客,速度会大大加快。当然也可以设置网页所使用的字体族,具体设置方式参见文末的参考链接。
3. 博客托管平台比较
由于博客部署在 Github Pages, 所以在国内访问速度显然会比较慢。可选方案为国内的代码托管平台「码云」,码云提供了 Coding Pages 服务,使用起来比 Github Pages 更加方便。但是同样的 Hexo + NexT 博客部署到码云,打开时会出现部分 Js 资源无法找到的错误,如下图所示:
打开「码云」上的静态网页出现错误以上错误的原因我未过多探究,由于该平台有此错误,故我采用的方案是:将博客部署在「七牛云存储」中,这样做可显著提高博客的访问速度。
使用站长之家的「网站测速工具」对分别部署在「七牛」和「Github Pages」的我的两个博客进行测速,结果如下所示,速度高下立判。
部署在「Github Pages」的博客 部署在「七牛」的博客4. 将博客部署到七牛云存储时遇到的坑
参考文末链接中的方法即可顺利将博客部署在七牛中,并可使用七牛提供的临时域名访问博客,不过我仍遇到一些坑,造成了一些困扰。
遇到的问题一:虽然博客部署成功,但是通过我自己的域名访问直接报 404 错误。后来发现的原因是 DNS 有问题,更换 DNS 后即可正常访问「如使用 阿里 DNS」。我这里的网络一向对七牛支持不好,不知是什么原因。
遇到的问题二:七牛默认采用「融合 CDN」技术手段,加速网站的访问,该方案会显著影响动态文件的请求效果,如更新某篇文章后,默认情况下过了 30 天才能在网页上看到更新。官方提供了方案用来及时刷新缓存:
所以七牛提供的加速功能最好只针对静态文件,但对于我们的静态博客来说,更新博客后手动刷新一下缓存其实并不麻烦,并且七牛的缓存刷新时间可以进行设置,利大于弊。