iT邦幫忙

0

請教用React Router V6 的React SPA部署到Azure靜態 Web 應用程式的URL問題

  • 分享至 

  • xImage

如題,我的Router設定如下:

 <Routes>
     <Route path="/test" element={<Test />}/>
     <Route path="/menu" element={<Menu />}/>
     <Route path="/" element={<Menu />}/>
 </Routes>

外層是包BrowserRouter,然後部署完發現直接下baseURL(Azure自己生成的)/test,會無法出現頁面,只有首頁有畫面,查了StackOverflow回答都是説用HashRouter取代BrowserRouter去包就可以解決,因為託管的伺服器他是用資料夾找.html的概念下去找資源,所以SPA他會無法判斷。

嘗試HashRouter後有成功解決,但我就是覺得網址有個hash(#)很醜,想了解Azure靜態 Web 應用程式託管有辦法設定使用BrowserRouter判斷SPA的方式嗎?

你應該設定 BrowserRouter的basename 看看
https://v5.reactrouter.com/web/api/BrowserRouter/basename-string
samuraigo iT邦新手 4 級 ‧ 2022-03-15 08:10:26 檢舉
好的! 感謝大大的指點!原來Bsaename有這樣的妙用!!一直以為只是方便管理路徑而已><
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答