我使用的是react-router,除了直接转到网址外,一切正常。例如,如果我点击应用中的链接进入" / quizreview?quizId = nAUl3DmFlX"它没有问题。但是,如果我输入了网址" http://localhost:3000/quizreview?quizId=nAUl3DmFlX"它说:
无法获得/ quizreview?quizId = nAUl3DmFlX
这是我的路由器代码:
ReactDOM.render((
<Router history={browserHistory}>
<Route path="/" component={App}>
<IndexRoute component={UserQuiz} onEnter={loginRequired}/>
<Route path="/login" component={Login}/>
<Route path="/quiz/:id" component={Quiz}/>
<Route path="/quizreview" component={PostQuiz}/>
<Route path="/quizquestions/:quizId" component={QuestionForm}/>
<Route path="/questionreview/:questionId" component={QuestionReview}/>
<Route path="/noquestions" component={NoQuestionsDialog}/>
</Route>
</Router>
), document.getElementById('app'));
我在这里做错了吗?我按照React-Router教程进行了操作并且工作正常,我相信我遵循了相同的说明,但是出现了这个问题。
答案 0 :(得分:0)
如果您使用的是HTML5,那么要直接使用browserHistory访问URL,如果您使用的是webpack,则需要在您的webpack文件中使用historyApiFallback: true
historyApiFallback
的作用是使您的服务器返回index.html
以查找您尝试访问的任何URL,因为您的路由随后是针对index.html配置的,因此您可以访问任何直接路由网址
或者您可以尝试替代,即history={hashHistory}
与react-router
一起使用,然后访问您的网址
http://localhost:3000/#/quizreview?quizId=nAUl3DmFlX