为什么我无法路由我的应用程序?反应 - 反应路由器 - redux-router

Why am I not able to route my app? react - react-router - redux-router

我有一个简单的 redux/react 应用程序,我只能路由到根目录 /。我正在使用 react 0.14redux 3.0.2react-router 1.0.0-rc-3redux-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;

我从 express 服务器为 index.html 提供服务。这是该文件:

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,但没有用。我配置错了什么?

express 没有处理我的 pushState。我不知道最优雅的方法,但是当我添加时:

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

到我的服务器,然后一切开始正常工作。我很想听听正确的管理方法。