部署你的 Astro 站点至 GitLab Pages
你可以使用 GitLab Pages 为你的 GitLab 项目、组或用户账号托管 Astro 网站。
如何部署
段落标题 如何部署你可以使用 GitLab CI/CD 来自动构建和部署站点,从而将 Astro 网站部署到 GitLab Pages。为此,你的源代码必须托管在 GitLab 上,并且需要对 Astro 项目进行以下更改:
-
在
astro.config.mjs
文件中设置site
和base
。site
site
的值必须是以下之一:- 以下基于用户名的链接:
https://<username>.gitlab.io
- 以下基于群组名的链接:
https://<groupname>.gitlab.io
- 如果你在 GitLab 项目中配置了自定义域名:
https://example.com
对于 GitLab 的自托管实例,请将
gitlab.io
替换为你实例的 Page 域名。base
为了让 Astro 将你的仓库名(例如:
/my-repo
)视为网站的根目录,所以可能需要一个base
的值。如果你的页面是由根目录提供的,则不需要设置
base
参数。base
的值应该是诸如/my-blog
这样以斜杠开头的仓库名称。这样 Astro 就能理解你网站的根目录是/my-repo
,而不是默认的/
。配置此值后,所有内部页面链接都必须以你的
base
值作为前缀:请参阅 配置
base
的值 - 以下基于用户名的链接:
-
将
public/
目录重命名为static
。 -
在
astro.config.js
文件中,设置outDir: 'public'
。此设置指示 Astro 将静态构建输出放入public
文件夹,这是 GitLab Pages 公开文件所需的文件夹。如果你在 Astro 项目中使用
public/
目录 存放静态资源,你需要重命名该目录,并在astro.config.mjs
文件中将publicDir
的值改为新的目录名。例如,当
public/
目录被重命名为static/
,正确的astro.config.mjs
文件设置则如下: -
更改
.gitignore
文件中的构建输出。在我们的示例中,需要将dist/
更改为public/
: -
在项目的根目录中创建一个名为
.gitlab-ci.yml
的文件,其中包含以下内容。每当你更改内容时,都会构建和部署网站: -
提交你的更改并将其推送到 GitLab。
-
在 Gitlab 上,转到你仓库的 Deploy 菜单并选择 Pages。在这里你能看到 GitLab Pages 网站的完整 URL。要确保使用的是
https://username.gitlab.io/my-repo
这样的 URL 格式,请取消选中此页面上的 Use unique domain 设置。
你的网站现在应该可以发布了!当你将更改推送到 Astro 项目的仓库时,GitLab CI/CD 流水线将自动为你部署它们。