前言

突然发现我的多个标签页面页面打开都是 404 报错。

调查之后发现,问题应该是出现在大小写上。

调查过程

本地运行 hexo s 时标签页面运行正常,大小写标签都可以正常访问,而在服务器上运行时则出现了 404 错误。

原来 Git 默认设置了大小写不敏感,因此当你在本地新建了一个 a.txt 并提交,之后又把这个文件重命名为了 A.txt 时就会出现无法提交的情况。因为 Git 默认你的文件大小写不影响,所以你的服务器上只有一个 a.txt 存在。

到了我们这个例子上就是原本有个 tag 页面名为 git,当改名成为 Git 时你会发现本地运行时,查看这个 Git 页面是没问题的,但是到了服务器上就会出现 404 报错。而此时当你更改 URL 为 git 时这个页面又正常显示了。

知道了原理就好解决了。

解决方法

修改 git 为不忽略大小写。

进入博客文件夹,进入 git 目录:.deploy_git ,修改 .git 文件中的配置文件 config,将ignorecase 从 true 改为 false

vim . deploy_git/.git/config
- ignorecase = true
+ ignorecase = false

如果还没有解决,清空部署到 github 上的文件,重新发布

cd .deploy_git
git rm -rf *
git commit -m 'clean all file'
git push

进入博客文件夹,用 hexo 重新生成部署

hexo clean
hexo g
hexo d

问题解决。

参考

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


文章作者: Ruoyu Li
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Ruoyu Li !
  目录