2016-04-17 26 views
0

を取り付けていない:は、ネストされたルートに反応私は私のルートが見えるようにしたい

/ 
/signin 
/discussion/:title 

しかし、前進2スラッシュ過去のものには、エラーが発生し、私のクライアント側の依存関係のすべてが予期しないトークンエラーを投げている 。例えば、reactjs、私のCSS、私のイメージファイルはindex.htmlファイルにロードされています。私はバックエンドでExpressJSを使用しています。私は、クライアントへのルーティングをプッシュする私のサーバー上で次の行を使用します。

app.get('*', function(req, res, next) { 
    res.sendFile(path.join(__dirname, 'app/index.html')); 
}); 

routes.jsx

var React = require('react'), 
    Router = require('react-router'), 
    Route = Router.Route, 
    IndexRoute = Router.IndexRoute, 
    App = require('./components/app/app.jsx'), 
    Home = require('./components/pages/home.jsx'), 
    Discussion = require('./components/pages/discussion.jsx'), 
    DiscussionArea = require('./components/pages/discussionArea.jsx'), 
    Signin = require('./components/pages/signin.jsx'), 
    NotFound = require('./components/pages/notFound.jsx'); 

var routes = (
    <Route path='/' component={App}> 
    <IndexRoute component={Home} /> 
    <Route path='discussion' component={Discussion}> 
     <Route path='/discussion/area' component={DiscussionArea} /> 
    </Route> 
    <Route path='signin' component={Signin} /> 
    <Route path='*' component={NotFound} /> 
    </Route> 
); 

module.exports = routes; 

main.jsx

var React = require('react'), 
    ReactDOM = require('react-dom'), 
    ReactRouter = require('react-router'), 
    Router = ReactRouter.Router, 
    routes = require('./routes.jsx'), 
    createHistory = require('history').createHistory; 

ReactDOM.render((
    <Router history={ createHistory() }> 
    {routes} 
    </Router> 
), document.getElementById('app')); 

はなぜです反応ルータを使用して実装されていないネストされたルート?

答えて

1

答えが見つかりました。このStackoverflowの答えを参照してください:Minimum nodejs server setup needed for React using react-router and browserHistory

私のサーバーがパスを提供している方法と関係があります。私のリソースは、サーバーのルートからロードする必要があるときに、URLを基準にしてロードされます。

解決策は、index.htmlファイルの先頭に<base href="/">を追加することでした。

関連する問題