我将 Sinatra 应用程序上传到服务器(heroku)。但似乎该应用程序的行为就像它在本地主机上一样,不像我的另一个 Rails 应用程序在那里运行良好。
那么如何检查我的 Sinatra 应用程序是否使用正确的环境?Sinatra 如何知道使用哪个环境?
Heroku本质上会负责设置环境。默认情况下,它是“生产”。如果您对不同的用例有不同的配置/行为,则必须先对其进行编码。
例如
if ENV=="production"
# do something
elsif ENV=="staging"
# do something else
end
我不确定您为什么要将环境明确设置为“生产”或其他内容。这应该由托管环境自行决定。
更新
有关Heroku 文档的更多信息
进一步更新
heroku run printenv
上面应该列出环境变量。
我向所有 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