GitHub Page
GitHub 有一個可以提供靜態檔案的 server 在 github.io
這個 domain,每一個 GitHub user 或 organization 都會獲得一個以自己 username/organization name 為名的 sub-domain,可以拿來當作各個 repo 的 demo 網頁,這就是所謂的 GitHub page。
各個 repo 的 demo 網頁使用 root path 區分 ,比如我的 GitHub 帳號叫 abc123
,帳號底下有個 repo 叫 hello-world
,則這個 repo 的 demo 網頁的 URL 就會是 https://abc123.github.io/hello-world
。
與常見的 web server 預設行為一樣:==GitHub page 的 URL path 對應到的是其所屬的 repo 的 directory path==,每當進到一個 GitHub page 時,無論是在 root 或其它 sub-path,GitHub 的 server 都會自動尋找並提供對應 directory 中的 index.html
。
建立 GitHub Page
各個 repo 並不是一建立就有網頁,詳細的設定步驟請見官方教學。
特殊意義的 Repo Name
每一個 GitHub 帳號都可以有一個名為 {USERNAME}.github.io
的 repo,這個名字的 repo 的特殊之處在於:它的 demo 網頁的網址就是 https://{USERNAME}.github.io
,沒有 path,所以它可以拿來作為整個 GitHub 帳號的 demo 網頁。
Custom Domain
前面提到 GitHub page 的網址格式會是 {USERNAME}.github.io/{REPO-NAME}
,但其實可以設定 custom domain。
詳細的設定步驟如下請見官方教學。
Host Single-Page App with GitHub Page
由於「GitHub page 的 URL path 對應到的是其所屬的 repo 的 directory path」這個特性,原生的 GitHub page 是不支援 single-page app (SPA) 的,須使用特別的方式繞過。這個方式簡單說就是要在 404 page 埋一段會進行 client-side redirect 的 JavaScript,具體做法可以參考下面這個網站的介紹:
https://github.com/rafgraph/spa-github-pages/tree/gh-pages
gh-pages
https://github.com/tschaub/gh-pages
通常前端網頁開發完後都須要 build code,這個 npm 套件可以幫助你建立出一個快速 build, deploy & configure Github page 的流程:
Last updated