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