部署你的 Astro 站点至 GitHub Pages

您可以使用 GitHub Pages 直接从 GitHub 上的存储库托管 Astro 网站。

你可以使用 GitHub Actions 将 Astro 站点自动构建和部署到 GitHub Pages。为此,你的源代码必须托管在 GitHub 上。

Astro 维护了一个官方的 GitHub Action withastro/action 来帮助你部署项目;你只需很少的配置,就可以完成部署。按照下面的说明可以将你的 Astro 站点部署到 GitHub Pages,如果你需要更多信息,请参阅这个包的 README

  1. 在配置文件设置 site,并在 astro.config.mjs 中根据需要设置 base 选项。

    astro.config.mjs
    import { defineConfig } from 'astro/config'
    
    export default defineConfig({
      site: 'https://astronaut.github.io',
      base: '/my-repo',
    })
    • site 应当为 https://<YOUR_USERNAME>.github.iohttps://my-custom-domain.com
    • base 应当是你的存储库的名称,以正斜杠(/)开头, 例如 /my-repo。这是为了告诉 Astro 你的网站的根目录是 /my-repo,而非默认的 /
  2. 在你的项目中的 .github/workflows/ 目录创建一个新文件 deploy.yml,并粘贴以下 YAML 配置信息。

    deploy.yml
    name: Github Pages Astro CI
    
    on:
      # 每次推送到 `main` 分支时触发这个“工作流程”
      # 如果你使用了别的分支名,请按需将 `main` 替换成你的分支名
      push:
        branches: [ main ]
      # 允许你在 GitHub 上的 Actions 标签中手动触发此“工作流程”
      workflow_dispatch:
      
    # 允许 job 克隆 repo 并创建一个 page deployment
    permissions:
      contents: read
      pages: write
      id-token: write
    
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - name: Checkout your repository using git
            uses: actions/checkout@v2          
          - name: Install, build, and upload your site
            uses: withastro/action@v0
    
      deploy:
        needs: build
        runs-on: ubuntu-latest
        environment:
          name: github-pages
          url: ${{ steps.deployment.outputs.page_url }}
        steps:
          - name: Deploy to GitHub Pages
            id: deployment
            uses: actions/deploy-pages@v1
  3. 在 GitHub 上,跳转到存储库的 Settings 选项卡并找到设置的 Pages 部分。

  4. 选择 GitHub Actions 作为你网站的 Source,然后按 Save

  5. 提交(commit)这个新的“工作流程文件”(workflow file)并将其推送到 GitHub。

您的网站现在应该已完成发布了!当你将更改推送到 Astro 项目的存储库时,GitHub Action 将自动为你部署它们。

更多部署指南

根据类型筛选