Hexo+GithubPages 404
简介
继上次 2018,我又来了 中说 Hexo 数据丢失已有几个年头了,手中的那台笔记本见证了我头发稀疏的过程,它已经到了退休的年龄,运行速度已经无法匹配我的手速了。于是我省吃俭用换了一台电脑。我最先迁移的就是 Hexo,因为它太简单好用了实在是爱不释手。万万没想到一个 404 折腾了我几天几夜,几乎让我崩溃,还好最终解决了,不然我真的要去住院治疗了。
诸多方案
或许使用 Hexo 搭建个人网站的朋友见过下面这张图
出现这种 404 有如下几种情况,不知道你是哪一种,听我一一道来。
1、github 仓库名称不匹配
我们都知道,想要部署自己的 github.io,需要在 github 上面创建仓库。
在 github 上面创建的仓库名称没有使用自己的 github 账号名称,例如你的 github 账号名称是 zhanghao
,而你创建的仓库名称是 suibian.github.io
,这样你确实是无法访问你的博客网站的。
2、配置文件错误
在你的本地博客目录下(我创建的名称是 hexo
,注意不是 themes 主题目录下的那个配置文件),有个配置文件 _config.yml
,里面内容是这样的:
1 | # Deployment |
需要修改一下
1 | deploy: |
特别要注意 repo
和 git
后面要有空格。
3、分支错误
现在在 github 上面创建 repo,默认分支名称是 main
而不是 master
。
所以,你本地 Hexo 提交(hexo d
命令)的默认是去了 master
分支,这样访问也是没有内容的。可以在 github 上面把你的 zhanghao.github.io
仓库默认分支改为 master
,当然还可以修改 Hexo 的配置来改变分支为 main
,我没有试过就不误人子弟了。
4、hexo 依赖不全
我在 hexo 目录下,检查了一下,发现该安装的插件已经很齐全了,毕竟我是把 package.json
复制过来的,一个 npm install
妥妥完事。
检查依赖安装是否有不全的情况,可以使用 npm list 命令
1 | npm list --depth 0 |
如果检查有问题,会在控制台提示类似 npm ERR! missing xxxxx
。
5、域名解析错误
或许你配置了自己的域名,在阿里云或者腾讯云上面购买了自己的域名也配置了对应的 DNS 解析,但就是 404,你说气人不?!
关于在云上配置 CNAME,我就不多讲了,这里一定要在配置的时候检查一下你的 zhanghao.github.io
IP,然后再去配置 A 记录。
1 | ping zhanghao.github.io |
其中,185.199.108.153
就是 github.io
的 IP。
6、仓库中 CNAME 为空
这种错误,可以在 source 目录下创建一个 CNAME 文件,填写你的域名即可。
1 | cd hexo/source |
例如我的 CNAME 文件内容是
1 | zhanghao.com |
保存完成后,执行
1 | hexo clean |
我的问题
很遗憾的告诉你,我遇到的问题上面 6 种情况都不是。
而是我的 node
版本太高了(17.x),我用的 hexo 版本是 4.2.1
。
官方给出了对应的兼容版本要求,如下表所示:
Hexo 版本 | 最低兼容 Node.js 版本 |
---|---|
6.0+ | 12.13.0 |
5.0+ | 10.13.0 |
4.1 - 4.2 | 8.10 |
4.0 | 8.6 |
3.3 - 3.9 | 6.9 |
3.2 - 3.3 | 0.12 |
3.0 - 3.1 | 0.10 or iojs |
0.0.1 - 2.8 | 0.10 |
后面我卸载了 node
,重新安装了 node 12
,一顿操作。
1 | brew install node@12 |
再次打开自己的网站,一切都正常了,喜出望外。
当你痴迷一件事情的时候,连做梦都会帮你思考解决方案。
老天的事儿管不了,把自己的事情做好就好。