反应路由器无法从浏览器访问 child url
react router cannot access child url from browser
这是我的 redux 路线:
const routes = (
<Router history={browserHistory}>
<Route path="/" component={App}>
<IndexRoute component={Login} />
<Route name="first" path="/first" component={First} />
<Route name="second" path="/second" component={Second} />
</Route>
</Router>
)
export default routes
我的 App
组件有 Header
,即:
class Header extends Component {
render() {
return (
<div>
<h3><Link to="first">First</Link></h3>
<h3><Link to="second">Second</Link></h3>
</div>
)
}
}
export default Header
这一切都很好..我的 Header
渲染得很好,当我点击它们时,它们被路由到它们各自的 url..
我面临的问题是我只能点击路由。当我从浏览器访问 /first
url 时,我得到 404
.
当我访问 /
时,它会将我重定向到 header 的登录页面,然后单击 header 我可以路由,但是当我直接从浏览器调用 /first
时它给我 404 错误。
这是为什么??
如果有人回答这个问题,我会很高兴
您需要将您的服务器配置为 return 您的应用程序在命中它的任何路径上。为此,您可以使用捕获所有模式 *
.
因此从您的服务器内部(假设 Node.js 服务器)
app.get('*', function (req, res) {
res.sendFile(path.join(__dirname + '/index.html'));
});
然后在客户端启动路由器。
这是我的 redux 路线:
const routes = (
<Router history={browserHistory}>
<Route path="/" component={App}>
<IndexRoute component={Login} />
<Route name="first" path="/first" component={First} />
<Route name="second" path="/second" component={Second} />
</Route>
</Router>
)
export default routes
我的 App
组件有 Header
,即:
class Header extends Component {
render() {
return (
<div>
<h3><Link to="first">First</Link></h3>
<h3><Link to="second">Second</Link></h3>
</div>
)
}
}
export default Header
这一切都很好..我的 Header
渲染得很好,当我点击它们时,它们被路由到它们各自的 url..
我面临的问题是我只能点击路由。当我从浏览器访问 /first
url 时,我得到 404
.
当我访问 /
时,它会将我重定向到 header 的登录页面,然后单击 header 我可以路由,但是当我直接从浏览器调用 /first
时它给我 404 错误。
这是为什么??
如果有人回答这个问题,我会很高兴
您需要将您的服务器配置为 return 您的应用程序在命中它的任何路径上。为此,您可以使用捕获所有模式 *
.
因此从您的服务器内部(假设 Node.js 服务器)
app.get('*', function (req, res) {
res.sendFile(path.join(__dirname + '/index.html'));
});
然后在客户端启动路由器。