【发布时间】:2020-10-08 20:04:56
【问题描述】:
问题很明显。我在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 中,因为我认为这不是解决问题所必需的。
如何解决问题?
P.S:我实际上是在服务器端使用 PHP Laravel 框架构建应用程序,在客户端使用 react.js。
【问题讨论】:
-
@falinsky,很难理解,因为答案很长。但它不像我的问题那样处理动态段部分,对吧?
-
问题是,为了让您的应用正常工作,您的后端应该为
http://127.0.0.1:8000/products/4/1和http://127.0.0.1:8000/呈现相同的index.html以及http://127.0.0.1:8000/ -
@falinsky,在 Laravel 的
web.php中,默认路由声明为Route::view('/{path?}', 'app');。所以每个 url 请求都会加载app.blade.php文件。所以我的应用满足你的条件,我认为 -
你可以用
http://127.0.0.1:8000/products/4/1请求打开你的浏览器控制台并查看你的网络服务器的响应,以确认这个404是由它返回的。
标签: php reactjs laravel react-router