解决由于大小写敏感导致的Hexo页面404问题

在Windows下,文件名和文件夹名字是忽略大小写的,而在Linux下是大小写敏感的。这导致我的博客页面在本地预览时可以正常访问,但部署到GitHub Page, Aliyun OSS后会出现页面404的问题。

以Hexo的分类Categories为例,我以如下命令创建了分类页面:

1
hexo new page Categories

主题配置文件中,设置侧边栏:

1
2
menu:
categories: /Categories/ || fa fa-th

然而,我在Hexo配置文件中,按如下设置:

1
category_dir: categories

这导致我点击侧边栏,可以正常的进入分类页面,但是点击某一分类后,则会报404错误。URL中本应该是大写的“Categories”变成了小写的“categories”。而Windows下是大小写不敏感的,因此在Windows下本地预览是正常的,但部署后就会出现问题。

解决办法:

  1. Hexo配置文件中,设置:

    1
    category_dir: Categories
  2. YourBlogDir/.deploy_git/.git/config下,设置Git不要忽略大小写。

    1
    2
    3
    [core]
    ....
    ignorecase = false
  3. 清空部署端,以Git为例:

    1
    2
    3
    4
    cd .deploy_git
    git rm -rf *
    git commit -m 'clean all file'
    git push
  4. 重新渲染并上传

    1
    2
    hexo clean
    hexo g -d