2015-12-18 12 views
18

私はReactを掘り下げているので、私はルータの必要性を見出しています。私はWes Bosのビデオシリーズに従っていますが、私のルート以外のどのルートにもアクセスしようとすると、邪魔になります。React Router Error - [ページ名]を取得できません

import ReactRouter from 'react-router'; 
var Router = require('react-router').Router; 
var Route = require('react-router').Route; 
var Link = require('react-router').Link; 
var createBrowserHistory = require('history/lib/createBrowserHistory'); 

その後、私のルータ

var routes = (
    <Router history={createBrowserHistory()}> 
    <Route path="/" component={LoginPage} /> 
    <Route path="/dashboard" component={Dashboard} /> 
    <Route path="/search" component={SearchPage} /> 
    <Route path="/details" component={DetailsPage} /> 
    <Route path="*" component={LoginPage} /> 
    </Router> 
); 
ReactDOM.render(routes, document.getElementById('content')); 

しかし、私はlocalhostに行く場合:私は、エラーを与えています3000 /ダッシュボード:

Cannot GET /dashboard 

何かアドバイスを?

+2

をwebpack.config.jsするためにこれを追加しますか?ブラウザ履歴を使用すると、バックエンドルートも変更する必要があります。 –

答えて

64

バックエンドサーバが設定されている方法

devServer: { 
     historyApiFallback: true 
    } 
+0

これが答えです。 @ Yuschickあなたはこの問題を見ている人々がすぐに解決策を見つけるのを助けるためにそれを受け入れるべきです。 –

+0

はい、これは私が探していたものでした! – papacostas

+1

はい、まさに私が期待していたことです...ありがとう –

8

ブラウザの履歴を使用する場合は、サーバーを適切に設定する必要があります。https://github.com/rackt/react-router/blob/v1.0.3/docs/guides/basics/Histories.md#configuring-your-server

webpack devサーバーを使用している場合は、historyApiFallbackを有効にします。

+0

"webpack devサーバーを使用している場合は、historyApiFallbackを有効にしてください。" これで私の問題が解決しました。 – motoxer4533

関連する問題