首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么React似乎无法识别Heroku的PORT环境变量?

React无法识别Heroku的PORT环境变量的原因是因为React是一个前端框架,它主要用于构建用户界面,而Heroku是一个云平台,用于部署和运行应用程序。在Heroku上部署React应用时,需要使用后端服务器来提供React应用的静态文件。

Heroku的PORT环境变量是由Heroku平台提供的,用于指定应用程序监听的端口号。然而,React应用本身并不需要监听端口号,因为它是一个静态文件,由浏览器直接加载和渲染。因此,React应用无法识别Heroku的PORT环境变量。

要在Heroku上成功部署React应用,可以使用以下步骤:

  1. 在React应用的根目录下创建一个名为server.js的文件,用于创建一个简单的后端服务器。
  2. server.js文件中,使用Express或其他后端框架来提供React应用的静态文件。可以使用以下代码:
代码语言:txt
复制
const express = require('express');
const path = require('path');

const app = express();

app.use(express.static(path.join(__dirname, 'build')));

app.get('/', function(req, res) {
  res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

const port = process.env.PORT || 3000; // 使用默认的3000端口,或者使用Heroku提供的环境变量

app.listen(port, function() {
  console.log(`App is running on port ${port}`);
});
  1. 在React应用的根目录下的package.json文件中添加一个start脚本,用于启动后端服务器。可以使用以下代码:
代码语言:txt
复制
"scripts": {
  "start": "node server.js"
}
  1. 在Heroku上创建一个新的应用程序,并将React应用的代码推送到Heroku仓库。
  2. 在Heroku的应用程序设置中,设置buildpacks为Node.js,并确保已启用dynos来运行应用程序。
  3. 部署应用程序后,Heroku将自动检测并安装所需的依赖项,并启动后端服务器。React应用将通过后端服务器提供,并可以通过Heroku分配的URL访问。

通过以上步骤,React应用将能够成功部署到Heroku上,并能够正确识别Heroku的PORT环境变量。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在 10 分钟内实现安全的 React + Docker

你会看到一个简单、干净的日历,并选择了今天的日期。 ? 我承认这是一个非常简单的应用,但我们会用它来演示如何用 Docker 进行容器化。 为什么要使用Docker?...你可能会问:“为什么要用 Docker?这不会使事情复杂化吗?” 是的我同意。用 Docker 进行操作比用 Heroku 进行 firebase deploy 或 git push 处理更为复杂。...它还将安装 envsubst 版本,该版本允许你用环境变量去替换变量,并设置默认值。...在短短几分钟内就把你的 React 应用做了 docker 化。? 把将你的 React App 部署到 Heroku 你的应用要直到正式投入生产时才会真正的存在,所以让我们把它部署到 Heroku。.../v1/heroku-community/static", "react-pack": "docker run --rm -it --init -p 3000:3000 --env PORT=3000

20.1K30

使用 LeanCloud 云引擎部署 React Web 应用

提供这类 PaaS 云平台服务的公司有一些,比如 2007 年就开始开发的 Heroku,也有 Vercel 这类现代化的 Web 应用托管平台,在国内则有 Leancloud 这种 BaaS 平台也可实现类似功能...前两个创建自行完成即可,没什么好说的,React 则使用现成的项目或 create-react-app 来创建项目。...需要注意的是其中监听端口需要使用 leancloud 提供的环境变量 LEANCLOUD_APP_PORT 指定的端口,如果用错了则无法正常访问服务。...如果直接使用 npm run start 启动的话则需修改 package.json 中 start 部分的声明: "start":"set PORT=$LEANCLOUD_APP_PORT && react-scripts...参考文献# 在云引擎上部署 React 单页应用 By Leancloud Heroku By Wikipedia 注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

27820
  • 如何将 github 上的代码一键部署到服务器?

    buildpacks": [ { "url": "https://buildpack-registry.s3.amazonaws.com/buildpacks/mars/create-react-app.tgz..." } ] } 可以看出,除了配置仓库,logo,描述这些常规信息,我还配置了环境变量和 buidpacks。...buildpacks 简单来说就是构建应用的方式, 关于 buildpacks 的更多信息可以参考 heroku 官方文档 大家可能还有疑问,为啥上面的链接是 https://heroku.com/deploy...可以看出 url 中也没有任何参数信息,那为什么它就知道从哪来的呢?我觉得 ta 应该利用的是浏览器的 referer,用它可以判断从哪里过来的,进而搜索对应项目根目录的 app.json 文件。...你可以通过右键在新的「无痕模式」中打开来验证。你会发现右键在新的无痕模式中打开是无法正常部署的。 这有什么用呢? 一键部署意味着部署的门槛更低,不仅是技巧上的,而且是成本上的。

    12K31

    微服务架构之Spring Boot(八十四)

    63.2 Heroku Heroku是另一个流行的PaaS平台。要自定义Heroku构建,请提供 Procfile ,它提供部署应用程序所需的咒语。...Heroku为要使用的Java应用 程序分配 port ,然后确保路由到外部URI工作。 您必须将应用程序配置为侦听正确的端口。...以下示例显示了我们的入门REST应用程序的 Procfile : web: java -Dserver.port=$PORT -jar target/demo-0.0.1-SNAPSHOT.jar Spring...server.port 配置属性被馈送到嵌入式Tomcat,Jetty或 Undertow实例,然后在启动时使用该端口。$PORT 环境变量由Heroku PaaS分配给我们。 这应该是你需要的一切。...Heroku部署最常见的部署工作流程是 git push 生产代码,如以下示例所示: $ git push heroku master Initializing repository, done.

    2.2K10

    为什么需要PaaS?对Deis,Heroku,Flynn的一些观察

    为什么需要PaaS?一句话,现在的应用程序从源代码到运行阶段太复杂,没有标准的,通用的方式。...整个过程及产出如下: 开发阶段:源代码构建阶段:发布包/可执行程序部署阶段:可运行的镜像(发布包+配置)运行阶段:进程、集群、日志、监控信息、网络 不论是Deis,Heroku,Flynn或者其他PaaS.../Procfile web: bundle exec rails server -p $PORT 后面可以通过命令行来动态扩容程序 deis ps:scale web=4 纵向配置:环境变量 运行的发布包在不同的环境下有不一样的配置...,Deis的方式是通过环境变量。...客户端的命令行工具上设置环境变量后,就直接发送给所有容器,重设这些环境变量,然后重启。

    1.1K60

    【微信身份证后的刷脸时代】活体识别告诉你为什么照片无法破解人脸系统

    作者:胡祥杰 【新智元导读】腾讯优图实验室已经成功研发并推向使用的一项人脸识别技术:光线活体。...要验证是不是真正的人脸,光靠一个二维的模式识别,或者人脸特征点的对齐都是远远不够的,存在一定的局限性。 腾讯优图光线活体技术,为“刷脸”提供安全保障 一个简单的假设:拿着一张照片能不能骗过摄像头?...现有的人脸识别/验证中,活体早就作为一个基本的保障加入其中,比如大家熟知的 iPhone X 的人脸解锁,就需要用户保持张着眼睛等“活体”的动作,大多数的人脸识别在录入用户原始比对数据时,会采用“摇头”...比如,我们在文章开始提到的,高铁车站工作人员一直在提醒乘客抬头看着摄像头,也是出于这个目的。此外,较为典型的还有使用唇语、声音识别、波纹等技术作为验证方式。...目前,光线活体识别在使用中正常通过率是98%以上。 腾讯优图团队对新智元表示,光线活体识别技术的相关论文已经在撰写中,明年会在各大顶会投稿。

    3.4K60

    Spring Boot 项目部署到heroku爬坑

    详细教程请参见heroku官网 4.遇到的问题 ​ 上传项目到heroku时,一般系统会自动帮你打包并运行你的项目,这里我遇到两个问题: git的个人分支无法上传 项目无法启动...下面是解决方法: 1.git个人分支无法上传 ​ 官网上上传项目给了一条指令: $ git push heroku master ​ 然后会得到这样一个运行日志: Initializing...2.项目无法启动 ​ 通常maven项目在打包时,会被打成war包或者jar包,熟悉Spring boot的童鞋应该了解Spring boot的运行命令,其实heroku运行项目也非常简单。...首先说一下正常的一个文件的Spring boot部署到heroku,需要在根目录添加一个Procfile文件,告诉heroku你要打包哪个文件,文件内容如下: web java -Dserver.port...=$PORT $JAVA_OPTS -jar target/*.jar ​ 但是本人的项目为多个子项目打包,启动类在子项目中,这样如何来让heroku启动呢,自己不停的修改Procfile中的文件路径仍然不起作用

    3.1K20

    那就从API的使用开始吧

    而对于厂商而言,他们似乎更乐意将API推向市场,比如通过创建API社区、社交网络等,因为这样更有利于把产品推向市场,从而达到共赢。...作为一名开发者,诚然编写代码如同作家提笔挥毫,非常有成就感与乐趣,但同时我也觉得删除代码是件不相伯仲的美事。为什么呢?...我们没有想象中聪明 一名善于阅读和思考的程序员,想必是出众的程序员,譬如正在浏览本文的你。但是无论我们多么优秀,一个无法避免的事实是我们写的代码绝不可能零错误。...因此,如果有现成可用的一群技术大咖为我们铺好了前进道路,我们为什么还要敬而远之舍近索远呢?充分利用API服务,进行有效整合,才是明智的选择。 效率优先 不要把时间浪费在不必要的环节上。...存储 Amazon S3–几无对手的文件存储和文件流服务API。 通信 OpenCNAM–智能来电显示和识别。 Twilio–易用的电话和短信平台。

    1.5K100

    三周学会小程序第三讲:服务端搭建和免费部署

    文件会启动 8888 端口就是因为里面配置的是 port: ${port:8888}。...https://id.heroku.com/login 不过有一个非常不好的消息,Heroku 不支持 126 邮箱,不过你不需要注册多个,所以小编使用的自己的 QQ 邮箱。...3,输入如下命令,当然后面的 jiuask 应该是你的名称: heroku git:remote -a jiuask 这个步骤就是在添加一个 Heroku 的 Git 仓库,当你提交代码到 Heroku...别着急激动,我们还是简单说一下为什么能部署成功: 1,小编的pom.xml里面配置项目名称是jiuask-server所以编译打包以后会有一个jiuask-server-1.0.0.jar 的 jar...2,Heroku 会默认识别 Procfile 文件里面的命令作为部署命令: web: java -jar -Dspring.profiles.active=production target/jiuask-server

    2K10

    【译】助你成功搭建云应用的12条方法

    Port Binding – Export services via port binding, The twelve-factor app is completely self-contained....每一个正在将应用程序迁移到云端的开发人员都将面临一个与过去完全不同的环境,他们使用数据中心或自己的机房,这就是为什么他们应该关注12-Factor App的原因。...这十二条是由Heroku这一个云提供商发布的一个通用的解决方案,大多数他们的客户决定放出这些解决方案作为一种方法论。这十二条特性旨在解决与云中运行的应用程序相关的问题。...如果用一句话概括我的这个分享,并不是想法让大家记住这十二条特性,而是想让了解为什么每一个都是非常重要的。 基准代码 - 使用版本控制,一份基准代码,多份部署的版本控制。...配置 – 将配置存储在环境变量中,如果你将其打包进你的应用中,你就大错特错了。

    81490

    精读《如何在 nodejs 使用环境变量》

    作者给出了如下的建议: 通过命令行传递 PORT=65534 node bin/www 这是最基本、最常用的方式,可是当变量数量过多,不免觉得很崩溃: PORT=65534 DB_CONN="mongodb...://react-cosmos-db:swQOhAsVjfHx3Q9VXh29T9U8xQNVGQ78lEQaL6yMNq3rOSA1WhUXHTOcmDf38Q8rg14NHtQLcUuMA==@react-cosmos-db.documents.azure.com...使用 .env 文件 很显然,命令行写不下了就写到文件里: PORT=65534 DB_CONN="mongodb://react-cosmos-db:swQOhAsVjfHx3Q9VXh29T9U8xQNVGQ78lEQaL6yMNq3rOSA1WhUXHTOcmDf38Q8rg14NHtQLcUuMA...==@react-cosmos-db.documents.azure.com:10255/?...一般云服务商都会打包这项服务,因为只有服务器和持久化配置服务都由一个供应商提供,供应商才能将持久化配置与服务器权限形成关联,让第三方服务器即便拿到 Token 也无法访问配置。

    3K20

    现代“十二要素应用”与 Kubernetes

    “十二要素应用”为构建SaaS应用提供了方法论,是由知名PaaS云计算平台Heroku的创始人Adam Wiggins提出的。...配置—在环境中储存配置 Docker容器非常依赖Linux的环境变量进行配置。k8s/helm 有一个环境变量的哈希表,你可以通过它显示的定义容器的环境变量。...通过这些方法,你可以声明你的应用需要环境变量GITHUB_AUTH_TOKEN。 K8s 还有ConfigMap ,ConfigMap是存储通用的配置变量的。...k8s的pod也使用了端口映射的功能,可以把一个pod中的所有container的port都通过net container export出去,便于和外界通信。...当采用 Kubernetes 等容器编排技术在分布式环境下部署应用时,一方面不同组件之间并行启动无法保证其启动顺序,另一方面在应用运行时,其所依赖的服务实现有可能发生失败和迁移,我们利用Kubernetes

    82940

    安利一个github上面的一个神级库thefuck,Linux命令敲错了,没关系,自动纠正你的命令

    当你命令输入错误不要怕,直接来一句fuck,自动纠正你输入的命令。 在你输入错误的命令的时候,忍俊不禁的想来一句fuck,没错你不仅可以嘴上说,命令里面可以可以来一下,他丫的就矫正了。...repl ➜ fuck lein repl [enter/↑/↓/ctrl+c] nREPL server started on port 54848 on host 127.0.0.1 - nrepl... – add --app  to heroku commands like heroku pg; heroku_not_command – fixes wrong heroku commands... – kills process that bound port; prove_recursively – adds -r when called with directory; pyenv_no_such_command... – fixes unrecognized react-native commands; remove_trailing_cedilla – remove trailling cedillas ç, a

    1.8K10
    领券