建立Github repository

建立完畢後Github專案會像這樣

新增「.gitattributes」檔案,內容為:「* binary」。
這是要讓git將這隻分支的檔案以二進位檔案來處理。 ref

把Blazor(3)所建立的專案Push至repo中

發布Blazor wasm專案。在Visual Studio方案總管中,對專案名稱點滑鼠右鍵->發布。 系統會跳出對話窗,讓你選擇發布方式,這邊選擇資料夾即可:

設定專案要發布的資料夾路徑:

設定完畢後點選發布便會重新建置並發布專案:

新增「gh-pages」分支,將剛剛發布檔案中的wwwroot資料夾內的所有檔案,Push至「gh-pages」分支中。 部屬至Github Pages時不需要web.config,只需要發佈出來的靜態檔案(wwwroot資料夾)。 接著登入Github進入專案Repo,並選擇「gh-pages」分支,會看到資料結構如下圖:
git branch gh-pages
git checkout gh-pages

靜態檔案上傳完畢後至Github Pages設定建置資料夾。 設定位置:專案repository->Settings->Pages。 Source選擇Deploy from a branch,分支選擇剛剛所建立的gh-pages後存檔。

但這時開啟Github Pages上的網址會出現錯誤。

從browser的network中偵錯,會看到其中有數個404錯誤。 由此判斷問題出在專案的BaseUri與Github的BaseUri不一致。 Blazor預設的跟目錄為:"/",而Github Pages的部屬位置為:"/[repo]"。 因此須將wwwroot\index.html的BaseUri改為:"/[repo]/"。

改完後重新部屬會發現還有一個檔案(blazor.webassembly.js)找不到,這個檔案位在「_framework」的資料夾下, 而 GitHub Pages 預設的靜態網頁產生器「Jekyll」會忽略所有_開頭的目錄。因此須關閉Jekyll。 關閉方法是在「gh-pages」跟目錄新增「.nojekyll」檔案,內容空白即可。 新增完畢後再重整一次夜面就能夠看到網頁了。

但這時又發生了另一個問題,這次換本機執行時找不到資源檔了。 因為專案更改了BaseUri,但Debug的檔案依舊是照原本的資料夾結構在複製檔案。 這時更改專案組態檔(Properties->launchSettings.json),將下圖紅框處調整為BaseUri的路徑即可。

這樣本機執行及Github Pages都能夠正常執行了!