Hugo部署GitLab Pages后,站点地图仍显示gitlab.io而非自定义域名
解决GitLab Pages部署后sitemap与RSS仍用默认域名的问题
可能的原因及修复步骤
1. 检查CI/CD部署脚本是否覆盖baseURL
问题大概率出在.gitlab-ci.yml的构建命令里——很多时候会手动指定--baseURL参数,直接覆盖config.toml的配置。
- 打开项目根目录的
.gitlab-ci.yml,找到构建静态站点的命令(比如Hugo的hugo) - 如果看到类似
hugo --baseURL https://project-xxxxx.gitlab.io/的写法,要么删掉这个参数,要么替换成你的自定义域名:hugo --baseURL https://www.example.com/
2. 清除GitLab Pages缓存
GitLab可能缓存了旧的构建产物,导致新配置没生效:
- 进入项目的Settings > Pages页面
- 点击页面底部的「Clear cache」按钮,然后重新触发一次CI/CD构建
3. 确认站点生成工具的配置优先级
不同静态站点生成器对baseURL的处理有差异:
- 若用Hugo:检查是否存在
HUGO_BASEURL环境变量(CI环境可能自动注入),可以在CI脚本里显式设置export HUGO_BASEURL="https://www.example.com/",或者在构建命令里指定正确参数。 - 若用Jekyll:确认
_config.yml里的url和baseurl都配置正确,同时构建时用JEKYLL_ENV=production环境,避免配置不生效。
4. 验证DNS配置的有效性
虽然站点能访问,但DNS记录可能还在过渡,导致构建时获取到旧域名:
- 用
nslookup或dig工具确认自定义域名已正确指向GitLab Pages服务器 - 等待DNS完全生效后,重新触发构建
内容的提问来源于stack exchange,提问作者Udi
相关产品推荐
相关产品推荐

