使用 react router 和 express 在 heroku 上刷新时找不到路由

Route not found on refresh using react router and express on heroku

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

我一直 运行 关注的问题是我到达路线的时间。 IE:/aboutus 并刷新我得到 "not found"。当我导航到那里时,一切都很好。有什么想法吗?

我也在用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'));

如果其他人遇到此问题,我最终通过将我的 Express 配置调整为以下内容来解决此问题:

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