Cloudflare Pages 部署機制說明

Wrangler CLI 部署流程 · Production 機制 · 舊 Deployment 清理

🚀 每次部署發生了什麼?
Step 1:wrangler 上傳整個部署目錄(約 52 個檔案)
Step 2:Cloudflare 建立新的 Deployment(唯一 ID,如 2529b357
Step 3:Production 域名 wholistics.pages.dev 自動指向最新 Deployment
Step 4:舊的 Deployment 仍佔空間,不會自動刪除
💡 每次部署都是全新上傳,不是差異更新。即使只改了 1 個檔案,整個目錄的 52 個檔案都會重新上傳。
常見誤解 vs 正確理解
常見誤解 正確理解
每次部署覆蓋同一個子站 每次產生不同的 Deployment ID
子站名稱固定不變 每個 Deployment 有唯一 ID(如 a80a6c15、2529b357)
舊的檔案會自動被替換 舊的 Deployment 永久保留,佔用空間
部署失敗會回滾到舊版 Production 自動指向最新成功版本,舊版仍可獨立訪問
🌐 Production 域名指向機制
  • wholistics.pages.dev(無前綴)= Production 入口,永遠指向上線版本
  • 新 Deployment 成功後,Cloudflare 自動切換 Production 指向
  • 舊的 xxx.wholistics.pages.dev 仍可訪問(用於回溯查看),但 Production 不再指向它們
  • 使用者無感知切換,打開的就是最新版本
⚠️ 免費方案空間限制
  • 檔案數量限制是所有 Deployment 累加的,不是單次計算
  • 每次部署 52 個檔案,舊的不刪,持續累積
  • 累積超過約 500 個檔案後,新部署會回報成功但不實際生效
🧹 記得每天刪除舊的檔案,只保留最近的三次更新結果。到 Cloudflare Dashboard → Pages → wholistics → Deployments,手動刪除較舊的 Deployment,清出空間。
📊 以每次 52 個檔案計算,約 10 次部署就會接近上限。務必定期清理!
💻 部署指令(穩定可用)
cd C:\Users\Administrator\WorkBuddy\wh-all-deploy $env:CLOUDFLARE_API_TOKEN = [Environment]::GetEnvironmentVariable("CF_API_TOKEN", "User") $env:CLOUDFLARE_ACCOUNT_ID = "2f2795bc4a98928375b23c36140ba33b" npx wrangler pages deploy . --project-name wholistics --commit-dirty true
🔒 API Token 存於 Windows 環境變數(User scope),不需在指令中明碼輸入。
🧹 日常清理步驟
  1. 開啟 Cloudflare Dashboard
  2. 進入 Workers & Pages → wholistics → Deployments
  3. 只保留最近 3 次 Deployment,刪除其餘舊的
  4. 確認 Production 仍指向最新版本
刪除舊 Deployment 不影響 Production 運作,只影響舊版本的回溯訪問。