贫瘠之地

华北无浪漫,死海扬起帆
多少个夜晚,独自望着天

0%

Hexo 部署 Github Pages 404 问题

背景

突然发现 Hexo 中的有些文章突然打不开了

表现是点击无反应,无论是点击 “阅读原文” 还是在归档等页面中点击文章标题都无法正常打开

查看控制台发现对页面的请求 404 了

排查

Github 的 Actions 正常

也没出现部署失败的情况

查看 push 上来的源文件,发现可能是因为大小写问题

文件路径为 ...bridge ,而请求的路径为 ...Bridge,尝试将路径手动修改为小写,发现正常跳转

解决

查询了一下,基本上可以确定原因为 git 默认忽略大小写

  1. 首先 push 了小写标题的文章
  2. 修改了文章标题为大写,此时 Hexo 解析其他页面也更换了大写
  3. 但是因为 git 忽略大小写,所以更名为大写的内容并没有 push 到仓库,导致解析 pages 时没有更新相应的资源路径;此时点击 Hexo 生成的其他页面则资源名称已经更新为大写,导致 404

修改 git config 文件

在博客根目录下编辑 ./.git/config 文件

1
2
3
4
5
6
7
8
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
# ignorecase = false

修改 ignorecase 为 false

进行推送即可,也可以直接重新 push 整个项目

全部重新 push

在博客根目录 ./.deploy_git 目录下

1
2
3
git rm -rf *
git commit -m 'clean all file'
git push

使用 Hexo 插件进行 deploy

1
2
3
cd ..
hexo clean
hexo d -g

参考

Hexo 部署到 Github Pages 文件夹大小写问题 // Yizhao He's Notes (1mhz.me)

利用hexo在GitHub搭建博客改变tag因为大小写问题而404的解决方法_hexo的next用tag就404_轨迹 ‎‎‎‎的博客-CSDN博客