1
我使用Express和React構建同構應用。我想使用具有固定路徑的系列url進行反應,如:hostname/admin/xxx
,hostname/admin/yyy
,hostname/admin/zzz
。Url在反應路由器中不匹配任何路由
在高速路由器是:
// in server.js file
app.use('/admin', admin);
// in admin.js router file
router.get('*', (req, res) => {
match() // react-router's match method
}
,並在react-router
的routes
文件是:
<Route path='/' component={Admin}>
<Route path='child' component={Child} />
</Route>
當我訪問hostname/admin
,服務器渲染可以精確匹配的路由,而瀏覽器拋出一個錯誤:Warning: [react-router] Location "/admin" did not match any routes
。
如果我改變routes
到
<Route path='/admin' component={Admin}>
<Route path='child' component={Child} />
</Route>
服務器渲染所無法比擬的任何途徑。
我認爲問題是,對於服務器渲染,path
是'/'
,但對於客戶端,它是'/admin'
。我如何解決它,除了在Express中使用app.use('/', admin)
?