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

如何在GitHub部署中隐藏密码?.gitignore与dotenv在Heroku部署失效求助

解决方案

1. 用Heroku原生环境变量存储敏感信息

Heroku自带环境变量管理机制,完全不需要依赖本地的config.py或.env文件:

  • 打开终端,执行命令直接设置变量:
    heroku config:set APP_PASSWORD="blablabla"
    
  • 执行heroku config命令,能查看所有已设置的环境变量,确认目标变量是否添加成功。

2. 修改代码统一读取环境变量

调整代码逻辑,让本地和Heroku环境共用一套读取方式:

  • 替换原有读取config.py的代码,改为从环境变量获取:
    import os
    APP_PASSWORD = os.getenv("APP_PASSWORD")
    
  • 本地开发时仍可保留dotenv支持,确保本地调试正常:
    在项目根目录创建.env文件写入APP_PASSWORD="blablabla",代码里保留加载逻辑:
    import os
    from dotenv import load_dotenv
    
    # 本地会自动加载.env,Heroku因无该文件会跳过此步骤
    load_dotenv()
    APP_PASSWORD = os.getenv("APP_PASSWORD")
    

3. 确认.gitignore配置无误

确保敏感文件不会被提交到GitHub:

# .gitignore 关键内容
config.py
.env

4. 验证Heroku部署效果

重新推送代码到Heroku后,可通过日志确认变量加载情况:

heroku logs --tail

如果代码中使用APP_PASSWORD的模块未抛出未定义错误,说明配置生效。

常见避坑点

  • 绝对不要把.env文件提交到GitHub,Heroku无法读取你本地的.env,必须通过heroku config:set设置变量。
  • 确保os.getenv的变量名和Heroku上设置的完全一致,变量名大小写敏感。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:20:30