為何需要 Hash Route?
解決 React Router 在部署到伺服器上時,重新整理會出現 404 的問題。因為 React Router 是使用 navigate
在內部進行頁面的切換,而這個功能是由瀏覽器提供的,所以當我們重新整理時,瀏覽器會向伺服器發送請求,但是伺服器並沒有這個路由,所以會出現 404 的問題。
也就是目前的狀況是,儘管能在網站內透過點擊連結進行頁面切換,但是一旦重新整理頁面或是透過直接輸入網址的方式進入網站,就會出現錯誤:
1 | // App.js |
一樣這次需要到 /frontend
目錄下執行 npm run build
後才會生效
靜態網站邏輯
傳統的 Browser Router(History API) 需要伺服器支援,例如設定 .htaccess 或 nginx 來將所有請求重導向到 index.html,否則刷新頁面會導致 404 錯誤。Hash Route 則完全在前端運行,無需伺服器端的特殊設定,適合靜態網站(如 GitHub Pages)。
若您覺得這篇文章對您有幫助,歡迎分享出去讓更多人看到⊂◉‿◉つ~
留言版