如何在Heroku上托管带有Node后端的React应用程序?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Heroku上托管带有Node后端的React应用程序?相关的知识,希望对你有一定的参考价值。
我正在尝试在Heroku实例上托管使用create-react-app
创建的React应用程序。它具有来自Node后端的API调用,我还需要托管它。
我已经四处询问并且人们声称使用express
中间件将从React应用程序构建的文件作为静态文件提供。我不确定这是什么,我对它的所有尝试都导致应用程序错误。我不太确定我是否需要托管构建的文件
if (process.env.NODE_ENV === 'production') {
app.use(express.static('~/Developer/javascript/Vue/fffreact/build'));
}
这是我目前正在使用(可能是不正确的)来提供我构建的静态文件。
答案
当您运行create-react-app
构建脚本时,您将获得一个构建文件夹。这是您要告诉快递静态服务的文件夹。然后你有一个捕获所有路由处理程序,它将始终发送回构建文件夹中的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
将获得FULL路径,直到您当前所在的文件,然后您可以使用构建文件夹的相对路径。
以上是关于如何在Heroku上托管带有Node后端的React应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据从 Heroku 上托管的 Node.js 应用程序发送到托管在完全独立(Cpanel)服务器上的 PHP 文件?
如何在没有 Flask 的 Heroku 上托管 websocket 应用程序 python 服务器?
如何解决 Heroku 上托管的 django 项目中的迁移问题?