hexo- 更新 tag 的大小写后标签页出现错误

本文最后更新于:2020年11月22日 晚上

大小写,永远的痛

前言

在看自己的博客的时候,突然发现我的标签页面很多个 tag 页面打开都是 404 报错。
对多个 tag 查了之后才发现,问题应该是出现在大小写上。

正文

环境

  • 本地: Windows10
  • 服务器: Debian10

现象

本地运行 hexo s 查看到的 tag 页面是正常的,大小写的网址都能区分开,而在服务器上运行时则出现了 404 错误。

原理

参考这个 issue BUG 反馈:大写开头的标签出现 404 #818

简单是说就是在 Windows 平台的 Git 是默认大小写不敏感的,因为 Windows 本身就是大小写不敏感的,于是 Git 便遵守了平台的规范,默认设置了大小写不敏感,因此当你在本地新建了一个 a.txt 的文件并提交后,又把这个文件重命名为了 A.txt。这个时候你就会出现无法提交的情况。因为Git 默认你的文件大小写不影响,所以你的服务器上只有一个 a.txt 存在。

到了我们这个现实的例子上就是原本有个 tag 页面是 git 的,现在改名成了 Git 这个时候你会发现本地运行hexo s,查看这个Git 页面是没问题的,但是到了服务器上就会出现 404 错误。而在这个时候你查看 git 这个页面的时侯又没有问题了。

知道了原理就好解决了。

解决

到本地的 hexo 博客目录下,找到 \.deploy_git\.git 这个目录,把这个目录下的 config 中的 [core] 这一项下的 ignorcase 这一项从 true 修改为false。这样就解决了大小写不敏感的问题。

简单地说就是改成这个样子

ignorecase = false

参考

BUG 反馈:大写开头的标签出现 404 #818

hexo 标签、分类,大小写问题导致 404 错误,原因分析和解决