【问题标题】:Loading .env in Ruby on Rails application在 Ruby on Rails 应用程序中加载 .env
【发布时间】:2016-04-04 18:48:58
【问题描述】:

我正在设置一个heroku,我正在使用这个guide 来设置我的本地开发环境。我的应用程序根目录中有一个“.env”文件,其中设置了指南中所述的变量。当我跑步时

heroku local:run rails runner "puts ENV['S3_BUCKET']"

它返回一个空白。如何让它识别/加载“.env”文件?

【问题讨论】:

  • 我也有这个问题。找到解决方法了吗?

标签: ruby-on-rails ruby heroku


【解决方案1】:

如果您想加载带有 ENV 变量的 .env 文件,我建议使用 https://github.com/bkeepers/dotenv gem。 如果您已经在使用它,那么根据 dotenv 自述文件,您应该在启动时尽快加载,例如在 config/application.rb 添加:

require 'dotenv'
Dotenv.load

如果你使用 PUMA 或 Unicorn,在 config/puma.rb,config/unicorn.rb 中添加:

  require "dotenv"
  Dotenv.load("/path/to/env/.env")

【讨论】:

  • 我也在使用 dotenv 和 PUMA。我以为你已经破解了它,但是在将这两行都添加到我的 puma.rb 和 application.rb 之后,我仍然没有得到任何回报。还有其他想法吗?
【解决方案2】:

.env 文件用于开发和测试环境。使用 heroku 时,您正在谈论生产环境。你不想把你的 .env 文件放在你的仓库中(它有你的秘密,人们可能会窃取)。因此,在 heroku 上没有要引用的 .env 文件......相反,您现在使用 Heroku 的环境变量,同时像在 .env 文件中那样准确地命名变量及其值,那么它将起作用

【讨论】:

  • 我在开发过程中尝试在本地环境中使用heroku。我也把我的 .env 文件放在了 .gitignore 中。
【解决方案3】:

在遵循本指南时遇到了同样的问题。

我的问题是我按照指南链接到 https://devcenter.heroku.com/articles/s3,他们在其中设置了环境变量 S3_BUCKET_NAME(而不是 S3_BUCKET),当我回到指南时,我试图获取 S3_BUCKET,而我拥有的是 S3_BUCKET_NAME

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 2010-12-01
    • 2015-11-19
    • 2013-08-18
    • 2011-05-15
    • 2017-12-09
    相关资源
    最近更新 更多