0

我有一个简单的redux/react应用程序,我只能路由到 root /。我正在使用react 0.14,redux 3.0.2和. 这是我的应用程序:react-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;

我正在index.htmlexpress服务器提供服务。这是那个文件:

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组件。我试过/testand #/test,但它不起作用。我有什么配置不正确?

4

1 回答 1

2

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

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

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

于 2015-10-11T06:47:24.330 回答