reactJS,访问带有Daynamic分段的URL时显示“找不到页面”

时间:2020-10-08 20:04:56

标签: php reactjs laravel react-router

问题很明显。我在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构建应用。

1 个答案:

答案 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');