跳到內容

將 Astro 網站部署到 GitHub Pages

你可以透過 GitHub Pages 直接從 GitHub 的儲存庫中部署你的 Astro 網站。

你可以透過 GitHub Actions 自動將 Astro 網站搭建並部署到 GitHub Pages 上。正因如此,網站的原始碼必須要放在 Github 上。

Astro 官方提供的 withastro/action 可以只使用極少的設定就部署好專案。跟著下方的說明,即可在 GitHub pages 上部署你的 Astro 網站。詳細資訊請詳閱套件的 README

在 Github Pages 設定 Astro

標題為 在 Github Pages 設定 Astro

部署至 github.io 網址

標題為 部署至 github.io 網址

請在 astro.config.mjs 的設定檔中設定 site (EN)base (EN) 兩個選項。

astro.config.mjs
import { defineConfig } from 'astro/config'
export default defineConfig({
site: 'https://astronaut.github.io',
base: 'my-repo',
})

請確保 site 值為以下的其中之一:

  • 以你的使用者名稱產生的網址,如:https://<username>.github.io
  • GitHub 組織的不公開頁面所產生的亂數網址,如:https://<random-string>.pages.github.io/

你可能需要設定 base,這樣 Astro 才會將儲存庫名稱(例如 /my-repo)視為網站的根目錄。

base 的內容應該是你的儲存庫名稱,並以正斜線開頭,例如 /my-blog。這樣做是為了讓 Astro 理解你的網站根目錄是 /my-repo,而不是預設的 /

使用自定義網域名稱的 GitHub Pages

標題為 使用自定義網域名稱的 GitHub Pages

為了設定 Astro 在 GitHub Pages 上使用你的自訂網域,請將網域名稱設定成 site 的值,並請不要設定 base

astro.config.mjs
import { defineConfig } from 'astro/config'
export default defineConfig({
site: 'https://example.com',
})

設定 GitHub Action

標題為 設定 GitHub Action
  1. 在專案的 .github/workflows/ 資料夾中建立名為 deploy.yml 的新檔案,並將以下 YAML 設定貼進其中。

    deploy.yml
    name: Deploy to GitHub Pages
    on:
    # 在每次推送到 `main` 分支時觸發部署
    # 如果你想要在其他分支上觸發部署,請將 `main` 替換成你想要的分支名稱
    push:
    branches: [ main ]
    # 允許你在 GitHub 上的 Actions 分頁中手動觸發此部署
    workflow_dispatch:
    # 允許這個工作複製儲存庫並建立頁面部署
    permissions:
    contents: read
    pages: write
    id-token: write
    jobs:
    build:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout your repository using git
    uses: actions/checkout@v4
    - name: Install, build, and upload your site
    uses: withastro/action@v3
    # with:
    # path: . # 儲存庫中 Astro 專案的根位置。(可選)
    # node-version: 20 # 用於建置網站的特定 Node.js 版本,預設為 20。(可選)
    # package-manager: pnpm@latest # 應該使用哪個 Node.js 套件管理器來安裝相依套件和建置網站,會根據儲存庫中的 lockfile 自動檢測。(可選)
    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@v4
  2. 在 GitHub 網站上,請切換到儲存庫中的 Settings 分頁,並找到 Pages 部分。

  3. 選擇 GitHub Actions 作為設定中的 Source

  4. 將先前設定好的 workflow file 提交(Commit)並推送(Push)到 GitHub。

恭喜你!如此一來,你的 Astro 網站就會自動部署到 GitHub Pages 上了。如果你更改了你的網站原始碼並推送到前述的儲存庫,GitHub Actions 也會自動重新構建並部署你的網站,你不需要手動構建和部署。

更多部署指南

貢獻 社群 贊助