1

我将 Sinatra 应用程序上传到服务器(heroku)。但似乎该应用程序的行为就像它在本地主机上一样,不像我的另一个 Rails 应用程序在那里运行良好。

那么如何检查我的 Sinatra 应用程序是否使用正确的环境?Sinatra 如何知道使用哪个环境?

4

2 回答 2

1

Heroku本质上会负责设置环境。默认情况下,它是“生产”。如果您对不同的用例有不同的配置/行为,则必须先对其进行编码。

例如

if ENV=="production"
  # do something
elsif ENV=="staging"
  # do something else
end

我不确定您为什么要将环境明确设置为“生产”或其他内容。这应该由托管环境自行决定。

更新

有关Heroku 文档的更多信息

进一步更新

 heroku run printenv

上面应该列出环境变量。

于 2013-01-16T10:23:49.013 回答
0

我向所有 heroku 实例添加了一个环境变量:

heroku config:add APP_NAME=<myappname>

然后,对于 Sinatra,我在 config.ru 中有以下内容:

# detect environments and setup some passwords
case ENV['APP_NAME'] 
  when 'prod-damon'
    # whatever for production
  when 'dev-damon'
    # whatever for development on Heroku
  else
    # whatever for local
end
于 2013-01-16T13:51:54.240 回答