首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Heroku上托管带有Node后端的React应用程序?

如何在Heroku上托管带有Node后端的React应用程序?
EN

Stack Overflow用户
提问于 2018-03-04 07:52:56
回答 1查看 262关注 0票数 0

我正在尝试在一个Heroku实例上托管一个用create-react-app创建的React应用程序。它有来自Node后端的API调用,我也需要托管。

我已经要求大家使用express中间件将从React应用程序构建的文件作为静态文件提供服务。我不确定这需要什么,我所有的尝试都导致了应用程序错误。我不太确定是否需要托管构建的文件

代码语言:javascript
运行
复制
if (process.env.NODE_ENV === 'production') {
  app.use(express.static('~/Developer/JavaScript/Vue/fffreact/build'));
}

这就是我目前正在使用的(可能是不正确的)服务于我已经构建的静态文件。

EN

回答 1

Stack Overflow用户

发布于 2018-03-04 08:24:10

当您运行create-react-app构建脚本时,您会得到一个构建文件夹。这是您想要告诉express静态服务的文件夹。然后,您有一个catch all路由处理程序,它将始终返回在build文件夹中找到的index.html。请参见以下示例。

代码语言:javascript
运行
复制
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文件夹的相对路径。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49090493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档