GitHub Pages部署后首页正常 链接HTML文件报404如何解决
GitHub Pages仅首页index.html可访问、其余HTML页面返回404排查修复方案
按以下顺序逐一排查即可解决问题:
- 核对文件名大小写与实际存储路径
GitHub Pages服务端运行在Linux环境,对文件名、路径大小写完全敏感,本地Windows/macOS系统默认不区分大小写,本地测试正常不代表线上路径匹配。比如链接写的是/About.html但仓库内实际文件是about.html、或是文件实际存放在pages/子目录但链接写的是根路径/doc.html,都会直接触发404。 - 检查首页跳转链接的写法正确性
禁止写本地文件协议的绝对路径(比如file:///C:/site/xxx.html这类本地路径在线上完全无法访问),同目录下的页面直接写对应文件名即可,比如<a href="doc.html">文档</a>,子目录页面要补全正确的相对路径,同时排查笔误:不要把.html后缀错写为.htm、.hml,不要多打或者漏写路径中的斜杠。 - 确认目标文件已经成功推送到GitHub部署分支
本地新增/修改的HTML文件如果没有执行commit、push操作,线上仓库根本不存在对应文件,必然返回404。直接打开GitHub仓库页面,切换到配置Pages部署的对应分支(通常为main分支或gh-pages分支),逐一确认所有需要访问的HTML文件存在于对应路径、文件内容完整非空。 - 排查Jekyll默认规则导致的文件拦截
GitHub Pages默认会启用Jekyll静态站点生成器处理站点内容,所有以下划线开头的文件夹、文件(比如_post/xxx.html)会被Jekyll识别为特殊内部资源,不会作为公开静态页面输出,直接访问就会404。解决方法二选一:要么把下划线开头的文件/文件夹改成非下划线开头的命名,要么在仓库根目录上传一个空的、命名为.nojekyll的文件,告知GitHub Pages跳过Jekyll构建流程,所有文件按原始结构公开访问。 - 处理部署延迟与缓存问题
GitHub Pages文件更新后通常有1-3分钟的部署生效延迟,刚push完文件不要立刻测试,等待几分钟后按Ctrl+F5强制刷新浏览器缓存,也可以在访问链接后拼接?t=1这类随机参数绕过本地缓存验证。
内容的提问来源于stack exchange,提问作者ADITYA K
相关产品推荐
相关产品推荐

