使用 React Router 時,刷新或手動輸入 URL 有時會導致諸如「無法取得/資源」之類的錯誤。這個問題源自於伺服器端和客戶端路由之間的差異。
在傳統的 Web 應用程式中,URL 由伺服器解釋,這決定要顯示的適當內容。透過 React Router 引入的用戶端路由,URL 最初由瀏覽器解釋,然後 React Router 在本地處理頁面轉換,而不向伺服器發出請求。
但是,這表示如果使用者手動輸入或刷新 URL,伺服器將不知道要顯示哪個頁面,從而導致上述錯誤。
要解決此問題,您需要設定伺服器端和客戶端路由。
透過使用瀏覽器歷史記錄而不是雜湊歷史記錄, URL 將如下所示:http://example.com/#/resource。雜湊值 (#) 之後的部分會被伺服器忽略,因此伺服器會使用索引頁來回應。然後 React Router 處理 #/resource 部分並顯示正確的內容。
缺點:
透過這種方法,您可以在伺服器上建立一個包羅萬象的路由,將所有請求重定向到index.html。這提供了與哈希歷史類似的效果,但具有更清晰的 URL。
缺點:
透過為重要路線建立特定腳本來擴展包羅萬象的方法。這允許在伺服器上呈現一些內容,從而改善 SEO。
缺點:
在伺服器端和客戶端都使用 Node.js 來執行相同的 JavaScript 程式碼。這可確保伺服器產生與用戶端頁面轉換期間產生的標記相同的標記。
缺點:
合適的方法取決於您的特定需求:
以上是如何解決 React Router 中的「無法取得/資源」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!