用 Astro 和 Cloudflare Pages 架設技術部落格
這個網站(blog.top7ya.com)是用 Astro 產生的靜態網頁,放在 Cloudflare Pages 上。商店 top7ya.com 則繼續放在 Cloudways。這篇記錄整個架設流程。
為什麼用靜態網頁
技術文章不需要資料庫,也不需要後台。靜態網頁的好處:
- 快:只是一堆 HTML 檔案,由 Cloudflare 的 CDN 直接送出。
- 免費:Cloudflare Pages 的免費方案就夠一般部落格使用。
- 安全:沒有 PHP、沒有資料庫,也就沒有外掛漏洞要修。
- 好管理:文章是 Markdown 檔案,用 Git 保存每一次修改。
架構
| 網址 | 放在哪裡 | 用途 |
|---|---|---|
| top7ya.com | Cloudways(WordPress) | 商店 |
| blog.top7ya.com | Cloudflare Pages | 技術文章 |
兩個網址共用同一個網域,子網域只是在 Cloudflare DNS 多一筆紀錄,不另外收費。
步驟
1. 建立 Astro 專案
npm create astro@latest blog -- --template blog
cd blog
npm run dev
打開 http://localhost:4321 就能在本機預覽。
2. 寫文章
文章放在 src/content/blog/,一篇一個 .md 檔,開頭寫標題、說明和日期:
---
title: '文章標題'
description: '一句話說明'
pubDate: '2026-10-23'
---
內文從這裡開始。
3. 推到 GitHub
git add .
git commit -m "新增文章"
git push
4. 連接 Cloudflare Pages
在 Cloudflare 後台建立 Pages 專案、連結 GitHub repo,建置設定:
- Build command:
npm run build - Build output directory:
dist
之後每次 git push,Cloudflare 就會自動重新建置並上線。
5. 綁定 blog.top7ya.com
在 Pages 專案的「自訂網域」加入 blog.top7ya.com。網域的 DNS 本來就在 Cloudflare,它會自動加好紀錄。
免費方案的限制
依 Cloudflare 官方文件(2026 年 10 月):
- 每個網站最多 20,000 個檔案
- 單一檔案最大 25 MiB
- 每月 500 次建置
影片或大型壓縮檔超過 25 MiB 時,改放 Cloudflare R2、GitHub Releases 或 YouTube,文章裡放連結即可。