[教學] 如何將 Vite React 專案透過 GitHub Actions 自動部署,並綁定 Namecheap 自訂網域 (主網域/子網域一次搞定)

當我們用 Vite 開發完 React 專案後,將它部署到 GitHub Pages 是一個免費又方便的選擇。但如果想讓作品看起來更專業,綁定自己的專屬網域(例如 yourdomain.com)絕對是必經之路。

這篇文章將帶你走過完整的流程:從 Namecheap 的 DNS 設定Vite 專案的網域設定,到透過 GitHub Actions 自動化部署,一次搞定!

🛠️ 事前準備

  1. 一個使用 Vite 建立的 React 專案。
  2. 已經將程式碼推上 GitHub 儲存庫。
  3. 在 Namecheap(或其他網域商)擁有一組自己的網域。

步驟一:在 Namecheap 設定 DNS

登入 Namecheap,進入你網域的 Advanced DNS 設定頁面。在開始新增紀錄前,請先刪除系統預設的紀錄(例如指向停車頁面的 CNAME 或 A Record),確保列表乾淨,以免流量被導向錯誤的伺服器。

接下來,請根據你的需求選擇 「主網域」「子網域」 的設定方式:

方案 A:使用主網域 (例如 abc.ink)

如果你想讓訪客直接輸入網域就能看到專案,你需要新增 4 筆指向 GitHub 伺服器的 A Record

點擊 Add New Record,並重複新增以下四筆紀錄:

  • Type: A Record | Host: @ | Value: 185.199.108.153
  • Type: A Record | Host: @ | Value: 185.199.109.153
  • Type: A Record | Host: @ | Value: 185.199.110.153
  • Type: A Record | Host: @ | Value: 185.199.111.153

💡 補充: 通常我們也會順便加一筆 CNAME Record (Host 填 www,Value 填 你的帳號.github.io),這樣別人習慣性打 www.abc.ink 時也能順利連上。

方案 B:使用子網域 (例如 app.abc.ink)

如果你的主網域要留給別的網站,專案只想放在子網域,那你只需要 1 筆 CNAME Record

  • Type: CNAME Record
  • Host: 填入你的子網域前綴(例如 appdemo
  • Value: 填入你的 GitHub Pages 預設網址 你的帳號.github.io (⚠️ 注意:前面不需要加 https://)

步驟二:修改 Vite 專案設定

因為我們換了專屬網域,網站的「根目錄」改變了,且使用了自動化部署,所以必須在程式碼中做兩項關鍵修改:

1. 新增 CNAME 檔案 (最重要的一步!)

為了讓 GitHub 知道你要綁定哪個網域,我們需要建立一個 CNAME 檔案。

  • 在專案的 根目錄 找到(或手動建立)一個名為 public 的資料夾。
  • public 資料夾內,新增一個名為 CNAME 的檔案(⚠️ 注意:字母需全大寫,且不要有任何副檔名如 .txt)。
  • 打開檔案,裡面只需寫入你最終決定的網址,例如:Plaintextabc.ink (如果你選的是方案 B,這裡就填寫 app.abc.ink)

💡 原理揭密: Vite 打包時會將 public 內的檔案原封不動複製到輸出的 dist 資料夾中。這樣當 Actions 將打包好的檔案上傳到 GitHub 時,系統就能自動讀取到這份網域設定檔!

2. 更新 Base URL

打開專案根目錄的 vite.config.js (或 .ts),確保你的 base 路徑設定為根目錄 /

JavaScript

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
  base: '/', // 確保這裡是單一斜線
})

步驟三:推播程式碼與自動部署

確認你已經在專案中設定好了 GitHub Actions 的部署腳本(通常位於 .github/workflows/deploy.yml)。

接著,打開終端機,將剛剛的修改推上 GitHub:

Bash

git add .
git commit -m "Add CNAME and update base url for custom domain"
git push

🎈 見證奇蹟的時刻

推播上去後,GitHub Actions 就會開始自動打包。

這裡有一個超方便的隱藏機制: 過去我們可能需要手動到 GitHub 的 Settings 去填寫 Custom domain。但因為我們在步驟二已經把 CNAME 檔案包進了打包流程中,當 Actions 部署完成後,GitHub 會自動讀取該檔案,並在後台幫你把 Custom domain 填寫完畢! 你只需要做最後的確認:

  1. 到 GitHub 儲存庫的 Settings > Pages
  2. 往下捲動,確認 Custom domain 欄位已經自動出現你的網域。
  3. 等待 DNS 檢查通過 (顯示綠色的 DNS check successful)。
  4. 勾選下方的 Enforce HTTPS(如果反灰不能按,請耐心等個 15~30 分鐘,GitHub 核發免費 SSL 憑證需要一點時間)。

恭喜!你的 Vite React 專案現在已經在專屬網域上完美運行,並且擁有安全的 HTTPS 鎖頭標誌了!🎉

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *