在 GitHub 上建立專案,
並且使用指令建立一個 astro 的空專案:
在專案資料夾下建立 .github/workflows/deploy.yml 檔案:
上面的 yml 檔案是 GitHub Actions 的設定檔,主要用途是當 commit 推送至 main 分支時會自動建立並部署到 GitHub Pages 中,還有打包和部署的流程。
註:如果預設分支是 master 的記得要替換為 [ master ]
在 astro.config.mjs 檔案中加入以下設定:
以筆者 GitHub 使用者名稱: ruyut 專案名稱 astro-github-page-test 為例, GitHub Page 網址如下:
這是因為 GitHub Page 不是給我們一個網域,而是有加上儲存庫名稱的目錄,所以才要設定 base。 並且網站內的
站內連結都需要加上儲存庫名稱
例如:
不然在切換連結時本該指向的 https://ruyut.github.io/astro-github-page-test/about 的連結很可能會指向 https://ruyut.github.io/about 導致找不到頁面 404
在推送到 GitHub 前要先到專案的 Settings > Pages ,將 Build and deployment 的 Source 選擇 GitHub Actions
不然執行時會出現打包成功但部署失敗,顯示找不到 Pages:
將 astro 推送至 GitHub 儲存庫後會自動開始執行 GitHub Action
等待打包和部署完畢:
點選 Action 頁籤 > Deployments 就會看到部署的頁面網址:
點選該連結就會看到部屬好的網站了!
參考資料:
Astro.Docs - Deploy your Astro Site to GitHub Pages
npm create astro@latest
在專案資料夾下建立 .github/workflows/deploy.yml 檔案:
name: Deploy to GitHub Pages
on:
push:
branches: [ main ]
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@v2
(optional)
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
上面的 yml 檔案是 GitHub Actions 的設定檔,主要用途是當 commit 推送至 main 分支時會自動建立並部署到 GitHub Pages 中,還有打包和部署的流程。
註:如果預設分支是 master 的記得要替換為 [ master ]
在 astro.config.mjs 檔案中加入以下設定:
import { defineConfig } from 'astro/config';
export default defineConfig({
site: 'https://ruyut.github.io', // 將 ruyut 替換為自己的 github 使用者名稱
base: 'astro-github-page-test', // 將 astro-github-page-test 替換為專案名稱
});
以筆者 GitHub 使用者名稱: ruyut 專案名稱 astro-github-page-test 為例, GitHub Page 網址如下:
https://ruyut.github.io/astro-github-page-test/
這是因為 GitHub Page 不是給我們一個網域,而是有加上儲存庫名稱的目錄,所以才要設定 base。 並且網站內的
站內連結都需要加上儲存庫名稱
例如:
/astro-github-page-test/about
不然在切換連結時本該指向的 https://ruyut.github.io/astro-github-page-test/about 的連結很可能會指向 https://ruyut.github.io/about 導致找不到頁面 404
在推送到 GitHub 前要先到專案的 Settings > Pages ,將 Build and deployment 的 Source 選擇 GitHub Actions
不然執行時會出現打包成功但部署失敗,顯示找不到 Pages:
Error: Creating Pages deployment failed
Error: HttpError: Not Found
at /home/runner/work/_actions/actions/deploy-pages/v4/node_modules/@octokit/request/dist-node/index.js:124:1
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at createPagesDeployment (/home/runner/work/_actions/actions/deploy-pages/v4/src/internal/api-client.js:125:1)
at Deployment.create (/home/runner/work/_actions/actions/deploy-pages/v4/src/internal/deployment.js:74:1)
at main (/home/runner/work/_actions/actions/deploy-pages/v4/src/index.js:30:1)
Error: Error: Failed to create deployment (status: 404) with build version 0bc74498605a6abf64c2b72ae96a8d088a78d048. Request ID 4CD1:17752F:6D99AB:B8904C:66268944 Ensure GitHub Pages has been enabled: https://github.com/ruyut/astro-github-page-test/settings/pages
將 astro 推送至 GitHub 儲存庫後會自動開始執行 GitHub Action
等待打包和部署完畢:
點選 Action 頁籤 > Deployments 就會看到部署的頁面網址:
點選該連結就會看到部屬好的網站了!
參考資料:
Astro.Docs - Deploy your Astro Site to GitHub Pages
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com