解決React/React route部屬在GitHub Pages上遇到的問題

修訂了一版放在github上,步驟比較詳細 這裡
---
想把React APP部屬在GitHub Pages上若有使用到React route最常見的問題就是出現"空白"或是自訂的404頁面,但是當你打開瀏覽器偵錯工具又發現資源是正確載入的

這個問題的原因發生在React route本身,可能因為React route偵測到的路徑發生一些問題導致元件沒有渲染,這時候你需要進行一些設置

1. 在你的package.json加入"homepage": "https://你的帳號.github.io/儲藏庫/index所在資料夾"

2. 修改package.json腳本
"scripts": {
"start": "node scripts/start.js",
"build": "set PUBLIC_URL=https://你的帳號.github.io/儲藏庫/index所在資料夾&& node scripts/build.js",
"test": "node scripts/test.js"
},
view raw package.json hosted with ❤ by GitHub
-

※修改後的package.json參考
{
"name": "my-website",
"version": "0.1.0",
"private": true,
"homepage": "https://p208p2002.github.io/me/build",
"dependencies": {
...
},
"scripts": {
"start": "node scripts/start.js",
"build": "set PUBLIC_URL=https://p208p2002.github.io/me/build&& node scripts/build.js",
"test": "node scripts/test.js"
},
...
}
-

3. 將Router替換成HashRouter
本來可能是BrowserRouter,如果沒有進行替換會在reload後發生404,這是因為GitHub Pages無法設置404 redirect

※如果不換成HashRouter,須給BrowserRouter指定basename。basename='儲藏庫/index所在資料夾/'

留言

這個網誌中的熱門文章

[Arduino]電子秤平 重量感測條+HX711AD模組

cpe練習筆記 UVa401 Palindromes

[PHP,MySQL]圖片上傳和讀取 使用base64_encode & base64_decode