跳到主要內容
W
科技發布於 約 1 分鐘

用 Cloudflare Pages 架一個零成本的靜態站

從 Astro 專案到全球邊緣部署,記錄設定過程中幾個容易踩到的地方。

Cloudflare Pages 的免費額度對個人站來說相當寬裕:頻寬與請求次數都沒有上限, 唯一要留意的是每月 500 次的建置額度。

建置設定

連接 GitHub 倉庫之後,只需要三個設定:

欄位
Build command npm run build
Output directory dist
NODE_VERSION 22

NODE_VERSION 這個環境變數容易被忽略,但不設的話建置環境可能會用到過舊的 Node, 導致本機正常、線上失敗。

快取策略

靜態資產的檔名帶內容 hash,所以可以放心設一年的 immutable

/_astro/*
  Cache-Control: public, max-age=31536000, immutable

/*.html
  Cache-Control: public, max-age=0, must-revalidate

HTML 則必須每次重新驗證,否則發了新文章,回訪的讀者會看到舊的列表頁。

絕對網址

sitemap、RSS、OpenGraph 都需要完整網址,所以 astro.config.mjs 裡的 site 是必填的:

export default defineConfig({
  site: process.env.SITE_URL ?? 'https://example.pages.dev',
});

把它接到環境變數的好處是:日後綁自訂網域時,只要改 Cloudflare 上的一個變數就好, 不必動到程式碼。

小結

整套設定下來大約半小時,之後就是 git push 然後等一分鐘。 對於一個不想維護伺服器的人來說,這個交易划算。

分享這篇

小紅書、微信公眾號、抖音沒有開放網頁分享端點,請用「複製連結」後手動貼上。