GitHub 到 Cloudflare:建立自動化 Astro 靜態網站部署
Astro 網站本身只是 source code,完整發布流程可以變成:
Git
↓
GitHub
↓
Cloudflare build
↓
Astro
↓
Static Assets
↓
正式網域
GitHub 作為 source of truth
網站 repo 可以包含:
src/
public/
scripts/
package.json
wrangler.jsonc
而以下通常不進 Git:
node_modules/
dist/
.astro/
備份檔
資料庫 dump
原始 migration export
Cloudflare build
Cloudflare 連接 GitHub repository 後,每次 push 自動執行:
npm run build
如果使用 Workers Static Assets,再 deploy:
npx wrangler deploy
Astro 的輸出目錄通常是 dist/。
Wrangler Static Assets
最小概念:
{
"name": "site-name",
"compatibility_date": "YYYY-MM-DD",
"assets": {
"directory": "./dist"
}
}
自訂 404 可再加入 not_found_handling。
正式切換前
先使用平台測試網址檢查:
首頁
文章頁
Category
Tag
Archive
Search
RSS
Sitemap
404
圖片
確認正常後,再切正式網域。舊主機先保留一段時間當 rollback。
測試網址避免被收錄
測試網址與正式網址若內容相同,可以在測試環境加入:
<meta name="robots" content="noindex,nofollow">
正式網域穩定後,也可以直接停用測試網址。
自動部署的好處
日常流程只剩:
git push
↓
Cloudflare 自動 build
↓
自動 deploy
不再需要 SSH、scp、更新 PHP、維護資料庫或重啟 Web Server。
自動寫入 repo 時的注意事項
如果 GitHub Actions 也會自動 push 到網站 repo,本機修改前最好先:
git pull --rebase
避免本機 branch 落後遠端。
最終架構
Markdown / Astro
↓
GitHub
↓
Cloudflare Build
↓
Static Assets
↓
正式網站
網站部署本身到這裡就幾乎不需要人工維護了。
Tags:GitHub · Cloudflare · Astro · CI/CD