部署反应,将应用程序表达给heroku。刷新未找到的特定路径

时间:2019-07-12 18:25:46

标签: reactjs express heroku

已解决

我创建了错误的路径,我改成了

res.sendFile(path.resolve(__dirname, '../client', 'dist', 'index.html')) 

我在heroku上部署了一个react express应用程序,如果我单击菜单以浏览多个路径,一切都可以正常工作。

但是,如果我位于特定路径(例如myapp.herokuapp.com/list)中,请刷新它。该页面显示空白,并显示“未找到”字样。

我使用webpack将静态文件放到dist文件夹中 我的文件夹结构如下:

/root
    /client 
         /dist 
             index.bundle.js
             index.html
    ...
    /src
        index.js
    package.json

内部index.js

app.use('/api/users', require('../routes/api/users'))
app.use('/api/devices', require('../routes/api/devices'))

if (process.env.NODE_ENV === 'production') {
  app.use(express.static('client/dist'))

  app.get('*', (req, res) => {
    res.sendFile(path.resolve(__dirname, 'client', 'dist', 'index.html'))
  })
}

const PORT = process.env.PORT || 5000

app.listen(PORT, () => console.log('Server started on port ' + PORT))

同样,除了在特定路径中刷新或手动键入path之外,一切都按预期工作。它返回所有未找到的内容。


我认为是因为我的index.js文件位于src /文件夹中,所以这一行是错误的

res.sendFile(path.resolve(__dirname, 'client', 'dist', 'index.html')) 

0 个答案:

没有答案