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

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

问题描述

最近一直在使用Hexo搭建博客,然后将其部署到GIthub上,然而今天写完博客上传之后,发现TagsCategories页面变为404了,点击对应的Tag或Categories时会出现路径无法找到从而跳转到404页面,然后我在本地使用hexo s进行预览,发现一切正常。

原因

然而我最近为了规范项目的目录,将项目的文件名全都改成了小写,本地预览是没有问题的,但是提交到远程仓库之后,问题就出现了:git默认是不区分大小写的,此即便文件夹的大小写发生了变更,git也会表现出置之不理,导致无法找到路径。

解决方案

我的解决思路是先调整git的配置文件,使其大小写敏感,然后删除git项目中已经存在的大写文件夹,最终使用Hexo重新生成并部署

解决步骤

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

1
cd blog

进入.deploy_git文件夹 (.deploy_git是隐藏文件夹)

1
cd .deploy_git

进入.git文件夹

1
cd .git

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

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

接下来进入github中,在web模式下删除所有大写文件夹

之后在项目根目录下执行命令重新生成文件并部署到Github上

1
hexo clean && hexo g && hexo d

之后等待更新后重新加载发现还是404页面并且GitHub里面已经删除的大写文件夹又重新恢复了

然后重新整理思路

删除本地的.deploy_git目录

再次运行hexo d提交,hexo会重置git仓库,并重新生成所有文件!

打开github查看,问题解决!