Hexo + Next 主题发布后白屏的原因

首先网上有很多的原因列出了,包括有文件加载不全、GitHub Pages 不会提供某些目录等,这些基本都在最新的版本被解决了,不过我遇到了一件非常奇怪的事情

表现

  1. 访问博客白屏,观察 DOM 等都没有明显问题,只是显示不出来
  2. 隐约记得几个月前(嗯博客好久没更新过了)是没问题的,而这期间博客并没有改动过
  3. 测试发现通过 python3 -m http.server 启动起来的服务是可以被正常渲染的
  4. 直接访问 GitHub Pages 是可以的
  5. 经过 Cloudflare 是不行的

原因

找到问题十分坎坷就不具体说了,最终定位到问题是 Cloudflare

查询相关原因,是 Hexo 的动画依赖于脚本,而 Cloudflare 的 Rocket Loader (位于速度 - 优化 - 优化传递中)会将脚本进行异步加载,导致文件出错

解决

关闭 Rocket Loader

如果其他网站需要用到这个功能,那么可以配置页面规则只针对博客关闭