1
我已經配置反應過來路由器重定向任何未知的URL爲「/」:陣營路由器<redirect>沒有工作
<Router history={browserHistory}>
<Route path="/" component={Shell}>
<IndexRoute component={GithubPage}/>
<Route path="clock" component={ClockPage}/>
<Redirect from="*" to="/"/>
</Route>
</Router>
服務器已經正確配置,以任何未知的URL重定向到/index.html
,它看起來像這樣:
<html>
<head>
<link href="main.css" rel="stylesheet">
</head>
<body>
<main></main>
<script src="main.js" type="text/javascript"></script>
</body>
</html>
陣營路由器2.8.1行爲
/clock
正確路由到ClockPage/clock/est
(這是一條未知的路線)甚至沒有加載應用程序。服務器正確發送/index.html
,但css和js文件未加載,因爲瀏覽器正在請求/clock/main.css
和/clock/main.js
- 哪些不存在!- 要解決此問題,我在我的index.html中包含了
<base href="/">
。現在瀏覽器正確請求/main.css
和/main.js
,並且應用程序正確加載。它也重定向到「/」,因爲/clock/est
是未知路線。但是我得到的瀏覽器控制檯這樣的警告:
警告:自動設置使用
<base href>
被棄用,並將在下一主要版本中刪除基本名稱。這些語義與basename有細微的差別。請明確地傳遞的基本部分的選項來createHistory
陣營路由器3.0.0行爲
在這一點上,我切換到反應路由器版本3.0.0(保持<base href="/">
),並警告雲遠。未知路由仍然正確重定向到「/」。
所以我的問題是:
- 反應是否路由器3.0.0現在允許使用的
<base href>
- 是我的解決方案,以重定向的URL未知爲「/」的最佳方式?
假設我將切換到react-router 3.0.0。