在使用react路由器刷新时找不到路由并在heroku

时间:2017-03-31 11:26:45

标签: reactjs express heroku react-router react-redux

在本地提供我的应用程序时,一切都正常加载并在刷新时正常工作。当我部署到Heroku时,点击不同链接时一切正常。

我遇到的问题是当我到达路线时。 IE:/ aboutus和刷新我得到一个“未找到”。当我在那里导航时,所有检查都很好。有什么想法吗?

我也在使用react router redux。

的package.json

....
"express": "^4.14.1",
"react-redux": "^5.0.3",
"react-router": "^3.0.2",
"react-router-redux": "^4.0.8",

server.js

app.use(express.static(path.join(__dirname, '/../dist')));
app.use('/data', express.static(__dirname + '/data'));
app.use(express.static(__dirname))
app.get('*', (req, res) => {
    res.sendFile(path.join(__dirname, 'index.html'));
});

Index.js

...
const router = (
  <Provider store={store}>
    <Router history={history}>
      <Route path="/" component={App}>
        <IndexRoute component={Home} />
        <Route path="/aboutus" component={About} />
        <Route path="/list" component={List}  />
      </Route>
    </Router>
  </Provider>
)

render(router, document.getElementById('main'));

1 个答案:

答案 0 :(得分:1)

如果有其他人遇到此问题,我最后通过调整我的Express配置来解决这个问题:

//res.sendFile(path.join(__dirname, 'index.html'));
res.sendFile(path.resolve(__dirname + '/../dist/index.html'));