Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在heroku上使用react路由器和express刷新时未找到路由_Reactjs_Express_Heroku_React Router_React Redux - Fatal编程技术网

Reactjs 在heroku上使用react路由器和express刷新时未找到路由

Reactjs 在heroku上使用react路由器和express刷新时未找到路由,reactjs,express,heroku,react-router,react-redux,Reactjs,Express,Heroku,React Router,React Redux,在本地为我的应用程序提供服务时,所有内容都在加载并在刷新时正常工作。当我部署到Heroku时,当单击不同的链接时,一切都正常工作 我经常遇到的问题是当我到达一条路线时。IE:/aboutus和refresh我得到一个“未找到”。当我在那里导航时,一切都正常。有什么想法吗 我也在使用react路由器redux package.json .... "express": "^4.14.1", "react-redux": "^5.0.3", "react-router": "^3.0.2", "rea

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

我经常遇到的问题是当我到达一条路线时。IE:/aboutus和refresh我得到一个“未找到”。当我在那里导航时,一切都正常。有什么想法吗

我也在使用react路由器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'));
。。。
常数路由器=(
)
render(router,document.getElementById('main'));

如果其他人遇到此问题,我会将我的Express配置调整为以下内容,从而解决此问题:

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

如果其他人遇到此问题,我会将我的Express配置调整为以下内容,从而解决此问题:

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

是否直接调用您的节点应用程序?还是先有apache/nginx?您在env(本地和Heroku上)中都有哪个节点版本?是否直接调用您的节点应用程序?还是先有apache/nginx?env(本地和Heroku)中都有哪个节点版本?