You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不提交.env文件部署网站到Heroku?解决找不到文件报错

解决Heroku部署时找不到.env文件的问题

你的问题核心是Heroku部署时不会包含.gitignore里的文件,本地的.env根本没传到服务器上,自然找不到。不管是用config文件还是dotenv,本质都是依赖本地文件导致的问题,正确的做法是用Heroku的环境变量来管理敏感信息,步骤如下:

  • 移除代码中对本地.env文件的直接依赖
    如果你代码里有类似require('./../.env')的直接引入,直接删掉。使用dotenv的话,保留require('dotenv').config()即可——Heroku部署时即使没有.env文件,dotenv也不会抛出错误,只要你通过Heroku设置了对应的环境变量,代码依然能从process.env读取到值。

  • 在Heroku上配置环境变量
    有两种方式:

    1. 命令行方式:打开终端,执行heroku config:set 变量名=变量值,比如:
      heroku config:set MONGODB_URI="你的MongoDB连接字符串"
      heroku config:set SECRET_KEY="你的密钥"
      
      每个环境变量单独执行一次命令。
    2. 后台管理方式:登录Heroku官网,找到你的应用,进入「Settings」页面,在「Config Vars」区域点击「Reveal Config Vars」,然后逐个添加你的.env里的键值对。
  • 验证环境变量是否生效
    执行heroku config命令,能看到所有已设置的环境变量,确认和你本地.env里的内容一致。

  • 调整代码的变量读取逻辑
    确保代码中所有用到敏感信息的地方,都是从process.env获取,比如:

    const mongoose = require('mongoose');
    mongoose.connect(process.env.MONGODB_URI, { useNewUrlParser: true });
    

这样修改后,重新执行git push heroku main(或者你的分支名),应该就能正常部署了。之前用config文件的问题也是同理——不要把包含敏感信息的config文件加入版本库,而是通过环境变量传递配置。

内容的提问来源于stack exchange,提问作者meglynn22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 05:31:08