前言
突然发现我的多个标签页面页面打开都是 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
问题解决。