问题很明显。我在react.js应用中用以下几行声明了一个包含2个动态部分的路线:
<Route path='/products/:cat_id/:subcat_id' component={ProductsWise} />
但是当我尝试访问URL:http://127.0.0.1:8000/products/4/1时,它只是说: 找不到404 。代码如下:
import React, { Component } from 'react'
import ReactDOM from 'react-dom'
import { BrowserRouter, Route, Switch } from 'react-router-dom'
import ProductsWise from './ProductsWise'
class App extends Component {
render () {
return (
<BrowserRouter>
<div>
<Header />
<Switch>
<Route path='/products/:cat_id/:subcat_id' component={ProductsWise} />
</Switch>
</div>
</BrowserRouter>
)
}
}
ReactDOM.render(<App />, document.getElementById('app'))
我不是在这里将内容放在ProductsWise.js
中,因为我认为这不是解决问题的必要。
如何摆脱这个问题?
PS:我实际上是在服务器端使用PHP Laravel框架并在客户端使用react.js构建应用。
答案 0 :(得分:1)
问题是从后端的角度来看,products/4/1
路径未呈现SPA。
我相信Route::view('/{path?}', 'app')
不相关。
Laravel routing官方文档中没有关于通配符路由的信息-您可以分别为/
和/products/{catId}/{subcatId}
路径呈现SPA:
Route::view('/', 'app');
Route::view('/products/{catId}/{subcatId}', 'app');