一直有個困擾: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 切換:
- DNS 設定裡,把原先指向
github.io的記錄刪除。 - 回到 Worker 設定頁面,進 Domains → Custom Domains and Routes,新增一筆記錄指回原本的自訂網址。
這樣就切換完成了。
這篇文章本身就是在新環境上部署的。