一直有個困擾:Hugo 發佈到 GitHub Pages,repo 就必須保持 public。使用者應該是從部落格文章連進來才對,不應該是直接來 GitHub 讀原始檔。這種狀態有點裸奔的感覺。

剛好 domain 本來就在 Cloudflare 管,發現它有提供 Pages 的功能,就直接搬了。搬完之後 GitHub repo 可以轉成 private,這才是比較自然的狀態。

搬移步驟

整個流程不複雜。

Cloudflare Dashboard → Workers & Pages → Create application → Connect to Git,照著官方指引連上 GitHub repo。

Build command 填:

hugo

官方文件提到要設定 Build directory 為 public,但實際測試這個欄位已經不存在,也不需要設定。

設定完成後 Cloudflare 會自動跑一次部署,成功的話會拿到一個 xxxxx.workers.dev 的新網址。

確認與切換網址

先確認新網址可以正常瀏覽,再進行 DNS 切換:

  1. DNS 設定裡,把原先指向 github.io 的記錄刪除。
  2. 回到 Worker 設定頁面,進 Domains → Custom Domains and Routes,新增一筆記錄指回原本的自訂網址。

這樣就切換完成了。

這篇文章本身就是在新環境上部署的。