已解决
我创建了错误的路径,我改成了
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'))