GitLab Pages配置

环境准备阶段

首先确保项目可见性设置为Public(私有项目需要Premium版本才能使用Pages)。在项目根目录创建.gitlab-ci.yml文件,这是整个流程的触发点。建议同时创建public文件夹(如果使用Hugo/Jekyll等静态生成器可忽略),因为默认发布目录就是public。

基础配置实战

最简单的配置示例:

这里有个容易栽跟头的地方:artifacts路径必须设为public,且only分支要对应你的发布分支。遇到过缓存失效的情况,后来发现是job名称必须严格命名为"pages"(不能改其他名字),这个设计确实有点反直觉。

自定义域名配置

在Settings > Pages里添加域名后,需要创建CNAME文件到public目录。遇到过DNS解析生效但页面一直报证书错误,最后发现是Let's Encrypt证书需要等10分钟左右自动签发。如果要用HTTPS,注意别在域名里带www前缀,否则会触发证书校验失败。

高级技巧:动态环境

通过environment配置可以实现预览环境:

这里$CI_COMMIT_REF_SLUG变量会自动生成分支名的URL安全版本。实测发现带中文的分支名会编码成百分号格式,建议用英文命名分支。

权限控制要点

如果项目包含敏感信息,切记在Variables里设置保护变量时,不要勾选"暴露给分支"。有次误操作导致临时密码泄露,后来用环境作用域(environment scope)解决了这个问题。

故障排查记录

最常遇到的是404错误:首先检查public目录是否生成,其次查看CI流水线里Job的artifacts是否成功上传。有个隐藏坑点是.gitlab-ci.yml的缩进必须使用空格,用tab符会导致解析失败。另外如果使用静态站点生成器,记得把输出目录重命名为public(Hexo默认是public,但Jekyll是_site)。

性能优化建议

通过tag指定runner能显著提升构建速度,实测用docker executor比shell executor快3倍。另外可以在before_script里配置缓存:

不过要注意缓存键的设置,不同分支最好用不同缓存键,否则可能出现样式错乱。

最后提醒:绑定自定义域名后默认会强制HTTPS,如果遇到重定向循环,需要检查网站内链是否都是相对路径。上次就是因为绝对路径里写了http协议,导致浏览器安全策略拦截。现在每次部署完建议用curl -I检查返回头里的Location字段是否正确。

相关推荐
风之九子2 分钟前
在上游一天两版的项目上做二次开发:9 天 65 次提交的 fork 手记 (dsh-our-free-model)
人工智能·ai·github
邱杰47025 分钟前
数智人事系统(十七):加班核算与薪资构成
后端·github
小弥儿1 小时前
GitHub今日热榜 | 2026-10-20:智能体基建七席连庄,生成类项目回流
学习·开源·github
nunumaymax1 小时前
Git教程
git
江厌011 小时前
两张卡部署两个模型:物理分卡、MIG、张量并行的选择与可复现配置
github·模型部署·vllm
问天_观心1 小时前
模型微调学习(二)
开发语言·人工智能·学习·语言模型·github
回眸&啤酒鸭1 小时前
【回眸】GitHub Copilot 智能编程辅助效果实测
github·copilot
Brilliantwxx1 小时前
【Linux】基础IO(下):输出重定向、dup2 与 minishell 重定向实战
linux·运维·服务器·github·bash
miofly1 小时前
GitHub 今日推荐|security-audit-skill:让编码代理自己审计漏洞还互相验证
javascript·开源·github
阿萨德528号2 小时前
IDEA 项目 SVN 配置消失、版本控制变成 Git 且无 VCS 菜单的解决办法
git·svn·intellij-idea