本篇重點
- GitHub Pages 分為 User Page 與 Project Page 兩種類型
- User Page 與 Project Page 路徑重疊時,優先解析 Project Page 的內容
GitHub Pages 機制
User Page
- repository 名稱固定為:
[username].github.io(例如:forgetfulengineer.github.io) - 對應網址:
https://[username].github.io/(例如:https://forgetfulengineer.github.io/)
特性:
- 作為整個網域的根
- 可包含任意資料夾(例如:
/blog/、/project/) - 必須是 public repository
Project Page
- 任意 repository 名稱(例如:
run-pace-assistant) - 對應網址:
https://[username].github.io/repository-name/(例如:https://forgetfulengineer.github.io/run-pace-assistant/)
特性:
- 必須是 public repository
- 必須在 repository 設定中啟用 GitHub Pages
/repository-name/ 路徑規則
當請求 https://username.github.io/<repository-name>/,GitHub Pages 會依以下順序判斷:
- 是否存在同名 repository
<repository-name> - 該 repository 是否啟用 GitHub Pages
判斷結果
- 若「存在 + 已啟用」→ 直接使用 Project Page
- 若「存在但未啟用」或「不存在」→ 回退至 User Page 的
/repository-name/資料夾 - 若以上接失敗,則導向
404 Not Found error
範例
假設使用者帳號為 forgetfulengineer,並同時存在兩個儲存庫。其一是 User Page repository forgetfulengineer.github.io,該 repository 內部包含一個名為 /run-pace-assistant/ 的資料夾;其二是獨立建立的 Project Page repository run-pace-assistant,且已啟用 GitHub Pages 功能。
當存取網址 https://forgetfulengineer.github.io/run-pace-assistant/,GitHub Pages 會先依據路徑 /run-pace-assistant/ 判斷是否存在對應名稱的 repository。由於確實存在 run-pace-assistant 這個 repository,且該 repository 已啟用 GitHub Pages,因此系統會將此路徑直接映射至該 Project Page,而不是 User Page 中的同名資料夾。
結論

GitHub Pages 對獨立儲存庫(Project Page)的優先權高於主儲存庫(User Page)內的子目錄。



