省流版: jsdelivr CDN域名有问题, 改为所有js本地加载即可.

过程记录

不知怎么回事, 有时候博客加载会特别慢, 一两分钟都加载不出来,
一开始我用国内CDN(比如七牛云)存了网站背景图, 似乎变快了(然而并没有)
后面还是很慢, 于是我下定决心排查了一晚上, 记录如下

原因分析

浏览器 F12 禁用缓存查看时间, 如下

img

很明显, 原因出在前几个资源
查看如下

img
img

其中min.css是博客主题的资源文件, 是以CDN的形式请求 jsdelivr 获得的, 而 jsdelivr 域名经常被墙, 就很慢
collect 是我部署的微软clarify网站跟踪器, 在国外所以很慢

后面我又多试了几次, 瓶颈资源文件可能不一样, 但都出自 jsdelivr 和 clarify

既然定位了问题, 下面开始解决

解决过程

clarify

直接去微软clarify官网取消, 并且在博客设置里面取消即可

jsdelivr

一开始能想到的便是更换CDN:
可以在本地的 \themes\butterfly\scripts\events\cdn.js的line 71 更改CDN
可是找了很久都没有合适的/符合条件的/可用的CDN, 而且治标不治本, 于是只能从其他地方想办法

最后打算使用本地js最稳定, 在主题配置文件搜索third_party_provider即可找到, 将其设置为 local
然后按照注释提示安装 hexo-butterfly-extjs , 使用 npm install hexo-butterfly-extjs --save 即可

后来提示我博客主题版本过高, 需要升级主题或者安装更低版本extjs.
当然, 升级肯定是不能升级的, 必出问题. 只好安装更低版本 npm install hexo-butterfly-extjs@1.3.4 --save

安装之后就出问题了

img

最后折腾了很久, 解决方法是去官网下载这个缺失的文件.
然后扔到本地的node_modules/typed.js/lib/typed.min.js, 目录可能不存在, 需要自己创建. 还需要改js的文件名即可.

补充好这个文件之后, 问题完美解决!