如何在GitHub Pages上发布仓库中的子文件夹内容?
解决GitHub Pages子文件夹404问题的方法
1. 确认GitHub Pages部署源配置
- 进入仓库Settings页面,找到Pages选项
- 检查Source区域:确保选中
gh-pages分支,且部署路径选择/(root)而非/docs或其他目录 - 保存配置后等待几分钟,让GitHub完成重新部署
2. 修正根目录index.html的相对链接写法
确保链接使用正确的相对路径,比如子文件夹名为project1,链接应写为:
<a href="./project1/index.html" class="button">项目1</a>
也可简化为(GitHub Pages会自动识别子文件夹下的index.html):
<a href="./project1/" class="button">项目1</a>
注意不要使用绝对路径(如/project1/),因为你的站点部署在{username}.github.io/{repo}/二级路径下,绝对路径会从域名根目录开始查找,导致路径错误
3. 检查gh-pages分支的文件结构
- 克隆gh-pages分支到本地,确认所有子文件夹及内部的index.html都已推送至分支,未被
.gitignore忽略 - 执行以下命令查看文件结构:
git checkout gh-pages ls -la
确保所有项目文件夹都在根目录下,且内部存在index.html文件
4. 禁用Jekyll自动构建(若需)
GitHub Pages默认用Jekyll构建站点,Jekyll会忽略以下内容:
- 下划线开头的文件夹(如
_project1) - 未在
_config.yml中声明的文件夹 - 包含
.jekyll-ignore文件的文件夹
如果你的子文件夹属于上述情况,在仓库根目录创建空文件.nojekyll并推送到gh-pages分支,即可跳过Jekyll构建,直接托管静态文件
5. 验证部署后的请求路径
部署完成后,打开站点根页面,按F12打开浏览器开发者工具,点击子项目链接,查看请求的URL是否为{username}.github.io/{repo}/子文件夹名/,若路径错误则重新调整链接写法
内容的提问来源于stack exchange,提问作者cozyGarage
相关产品推荐
相关产品推荐

