【发布时间】:2017-09-05 14:01:58
【问题描述】:
我是 react 和 react-router 的新手。该应用程序是使用create-react-app 创建的。我需要在我的应用程序中使用两个主要页面实现路由。我尝试了很多选项,最后使它与以下代码一起工作。
此代码在开发过程中运行良好。但是在构建应用程序后,它无法正常工作。仅显示到 404 页面的路由。请帮我解决这个问题。
<Router history={browserHistory}>
<Route component={Root}>
<IndexRoute component={App} />
<Route path="/" component={App} />
<Route path="/sna/:country" component={SNA} />
<Route path="*" component={FourOFour}/>
</Route>
</Router>
我已使用browserHistory 启用导航以使用以下代码更改下拉菜单。
selectCountry(event){
var value = event.target.value;
browserHistory.push('/sna/' + value);
}
package.json
{
"name": "my-app",
"version": "0.1.0",
"homepage": "./",
"private": true,
"dependencies": {
"bootstrap": "^3.3.7",
"react": "^15.4.2",
"react-addons-update": "^15.4.2",
"react-bootstrap": "^0.30.8",
"react-data-grid": "^2.0.24",
"react-dom": "^15.4.2",
"react-router": "^2.6.0"
},
"devDependencies": {
"react-scripts": "0.9.5"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
【问题讨论】:
-
在不知道您的构建+服务器设置的情况下,很难为您提供任何帮助。你的开发环境和生产环境一样吗?意思是,您是否使用相同的服务器(配置)来托管您的应用程序?
-
@SebastianSebald 我使用 create-react-app 创建了应用程序。 package.json 内容也被添加到问题中。如果您需要更多信息,请告诉我。
-
这很有帮助。您使用什么服务器来托管构建结果?是否支持
push? -
我想与客户共享可以在本地打开的包。(类似于通常的 UI 代码:HTML + JS)。另外,我认为问题不是因为
push方法。因为在应用加载时会显示空白页面。理想情况下,它应该在App组件中打开页面。相反,它被路由到我的自定义404页面。
标签: javascript reactjs npm build react-router