Hexo部署到Github后文件夹名大小写引起的问题

使用Hexo撰写文章后仅使用几个简单命令即可轻松部署到Github上,有时候经常会出现文章部署后又修改了Tag或Categories,而恰好修改的内容涉及到英文字母大写改小写或小写改大写,譬如news改为News,字母N修改后确发现部署到Github上无法生效,而此时你若在本地预览确一切正常。

由于在发布的文章中出现的Tag或Categories会对应在tag或categories页面中显示,因此当点击对应的Tag或Categories时会出现路径无法找到从而跳转到404页面。

Github 404 Page

原因

这个现象的问题是由于git命令默认的配置中忽略了文件名的大小写,因此即便文件夹的大小写发生了变更,git也会表现出置之不理。

解决方案

解决思路是先调整git的配置文件,让git执行时不要忽略大小写的修改,然后清空github.io项目中的所有文件,最后使用Hexo重新生成并部署。

解决步骤

进入到Hexo项目的文件夹中,比如Hexo项目文件夹名称为blog:

1
cd blog

进入.deploy_git文件夹 (.deploy_git是隐藏文件夹,如果你看不到,可以使用ls -a命令来查看,这一步可以省略)

1
cd .deploy_git

打开.git目录下的config文件并修改ignorecase = trueignorecase = false

1
2
3
4
5
6
7
8
9
10
vim .git/config

[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true ##修改true为false
precomposeunicode = true

文件打开后,输入i进入编辑模式,将光标移动到ignorecase = true,将true改为false后输入:wq。(冒号也是命令的一部分)

接下来删除 .deploy_git文件夹内的所有文件,并push到Github仓库,完成后你的github.io项目中没有任何文件。

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

返回Hexo项目blog的根目录,重新生成文件并部署到Github上

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

完成。

你现在可以在浏览器中重新加载查看是否还会出现404页面了。