GitLab Pages 托管静态网站

曾经用 Github Pages 来托管博客内容,但是有一些不足:

  • 在不科学上网的情况下,是没法访问的,或者访问速度非常慢
  • 代码仓库必须是公开的,如果设置为私有,得另外配置很多东西

新建项目

这里的 Project name 一定要写成 xxxx.gitlab.io,这样后面形成的部署地址会很简洁,不然会有些麻烦(生成含有随机字数和字母的链接,或者链接有二级地址,显的很长)。

image-20250302230714268

配置博客

修改博客工程的配置文件 _config.yml

1
2
3
4
deploy:
type: git
repo: git@gitlab.com:username/username.gitlab.io.git
branch: main

部署博客

1
2
3
hexo clean
hexo g
hexo d

添加 .gitlab-ci.yml

Gitlab Pages 的运行和 Github 还不一样,它是通过 pipeline 执行 job 来部署。

所以要在新建的项目中添加一个 .gitalb-ci.yml,在上一步配置部署博客地址后,第一步中新建的项目中,应该可以看到我本地提交的代码或者文件等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# The Docker image that will be used to build your app
default:
image: ruby:3.2 # default
pages:
stage: deploy
script:
- mkdir .public
- cp -r ./* .public
- rm -rf public
- mv .public public
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

新建 .gitalb-ci.yml 后,会自动触发 pipeline,正常情况下,执行通过。

image-20250302232211102

进入 Deploy-Pages,点击 pages 链接,访问我部署的博客。

image-20250302232348199

其他配置

转到 Settings > Repository > Protected branches

查看 main 分支是否被保护。如果是,开启“Allowed to force push”。


展示:Magnolia’s Blog