如何修复GitHub Pages自定义域名解析失败(NotServedByPagesError)
GitHub Pages项目站点自定义域名配置问题解决
核心问题:项目站点与用户主页站点的配置差异
你的站点是项目站点(https://xharuke.github.io/haruke/),而非用户主页站点(https://xharuke.github.io),这确实是配置出错的核心原因之一,两者的自定义域名规则完全不同:
- 用户主页站点:可绑定顶级域名或子域名,支持A/CNAME记录
- 项目站点:仅支持绑定子域名,且只能用CNAME记录,不能用A记录
针对性修复步骤
1. 修正域名注册商(Freenom)的DNS设置
- 删除所有已添加的A记录(项目站点不需要A记录)
- 添加一条CNAME记录:
- 主机记录:填写你想用的子域名前缀(比如
www、blog等) - 记录值:填
xharuke.github.io(不要加/haruke/后缀) - TTL保持默认即可
- 主机记录:填写你想用的子域名前缀(比如
2. 修正GitHub仓库的Pages设置
- 进入
haruke仓库的「Settings」→「Pages」页面 - 在「Custom domain」栏填写你设置的完整子域名(比如
www.your-freenom-domain.tld) - 暂时不要勾选「Enforce HTTPS」,等DNS解析完全生效后再开启(否则可能触发证书错误)
- 确认「Source」部分的分支和目录正确:比如选择
main分支,目录选/(root)或/docs(根据你的站点生成工具而定,Jekyll默认用根目录)
3. 修复空白页问题
- 检查仓库根目录的
CNAME文件:GitHub会自动生成该文件,内容应为你填写的自定义域名,不要手动修改或删除 - 本地验证站点生成结果:如果用静态站点生成器(如Jekyll),先在本地执行构建命令(比如
jekyll build),确保生成的_site目录下有完整的HTML文件,再推送到仓库 - 查看部署日志:在「Settings」→「Pages」→「Deployment history」中查看最近的部署记录,排查是否有构建失败、文件路径错误等问题
4. 等待DNS解析生效
Freenom的DNS解析通常需要10-30分钟才能全网生效,可通过命令nslookup 你的子域名验证解析状态,确认返回的CNAME目标为xharuke.github.io即可。
内容的提问来源于stack exchange,提问作者Haruke Sensei
相关产品推荐
相关产品推荐

