我正在尝试在一个Heroku实例上托管一个用create-react-app创建的React应用程序。它有来自Node后端的API调用,我也需要托管。
我已经要求大家使用express中间件将从React应用程序构建的文件作为静态文件提供服务。我不确定这需要什么,我所有的尝试都导致了应用程序错误。我不太确定是否需要托管构建的文件
if (process.env.NODE_ENV === 'production') {
app.use(express.static('~/Developer/JavaScript/Vue/fffreact/build'));
}这就是我目前正在使用的(可能是不正确的)服务于我已经构建的静态文件。
发布于 2018-03-04 08:24:10
当您运行create-react-app构建脚本时,您会得到一个构建文件夹。这是您想要告诉express静态服务的文件夹。然后,您有一个catch all路由处理程序,它将始终返回在build文件夹中找到的index.html。请参见以下示例。
if (process.env.PROD) {
app.use(express.static(path.join(__dirname, './frontend/build')));
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, './frontend/build/index.html'));
});
}__dirname将获得直到您当前所在的文件的完整路径,从那里您可以只使用build文件夹的相对路径。
https://stackoverflow.com/questions/49090493
复制相似问题