0

シンプルなredux/reactアプリがあり、ルートにしかルーティングできません/react 0.14redux 3.0.2react-router 1.0.0-rc-3およびを使用していredux-router1.0.0-rx-3ます。これが私のアプリです:

import React from 'react';
import ReactDOM from 'react-dom';
import { Route} from 'react-router';
import { Provider } from 'react-redux';
import { ReduxRouter } from 'redux-router';

import store from './store/lcrf.store.js';

import App from './containers/App';
import Test from './containers/Test';

ReactDOM.render((
  <Provider store={store}>
    <ReduxRouter>
        <Route path="/" component={App}>
            <Route path="test" component={Test} />
        </Route>
    </ReduxRouter>
  </Provider>
), document.getElementById('app'));

ここに私のAppコンポーネントがあります:

class App extends Component {
    render() {
        return (
            <div>           
                <h1>App Component</h1>
                {this.props.children}
            </div>
        )
    }
}

私のTestコンポーネントは、 . なしで同じものですthis.props.children

class Test extends Component {
    render() {
        return (
            <div>
                <h1>Test</h1>
            </div>
        )
    }
}

export default Test;

index.htmlサーバーからサービスを提供していexpressます。そのファイルは次のとおりです。

var express = require('express');

var app = express();
var port = 3333;

app.use(express.static('public'));

app.listen(port, error => {
    if(error) {
        console.error(error);
    } else {
        console.info(`Server is listening on port ${port}`);
    }
})

index.htmlは私のpublicディレクトリにあります。

に移動すると/Appコンポーネントが表示されますが、コンポーネントにルーティングできませんTest/testとを試し#/testましたが、機能しません。何を間違って設定しましたか?

4

1 に答える 1

2

express私のを扱っていませんでしたpushState。これを行う最もエレガントな方法はわかりませんが、追加したとき:

app.get('*', function(request, response){
  response.sendfile('./public/index.html');
});

私のサーバーに、すべてが正常に機能し始めました。これを管理する正しい方法を聞きたいです。

于 2015-10-11T06:47:24.330 に答える