我正在设置一个heroku,我正在使用这个guide来设置我的本地开发环境。我有一个' .env'将文件放在我的应用程序的根目录中,并按照指南中的说明设置变量。我跑的时候
heroku local:run rails runner "puts ENV['S3_BUCKET']"
它返回一个空白。如何让它识别/加载' .env'文件?
答案 0 :(得分:0)
如果您想使用ENV变量加载.env文件,我建议使用https://github.com/bkeepers/dotenv gem。 如果您已经在使用它,那么根据dotenv自述文件,您应该在启动时尽快加载,例如在config / application.rb中添加:
require 'dotenv'
Dotenv.load
如果您使用PUMA或Unicorn,请在config / puma.rb中添加:
require "dotenv"
Dotenv.load("/path/to/env/.env")
答案 1 :(得分:0)
.env文件适用于开发和测试环境。使用heroku时,您正在谈论生产环境。你不想把你的.env文件放在你的回购中(它有你的秘密,人们可能会窃取)。所以在heroku上没有引用的文件...而是你现在使用Heroku的环境变量,同时在.env文件中完全命名变量及其值,然后它将起作用
答案 2 :(得分:0)
遵循本指南时遇到同样的问题。
我的问题是我按照指南链接到https://devcenter.heroku.com/articles/s3,他们设置了环境变量S3_BUCKET _NAME (而不是S3_BUCKET),当我回到指南时我是试图获得S3_BUCKET,当我拥有的是S3_BUCKET _NAME