8

(免责声明:在 Heroku 上部署 Sinatra 的新手。)

我看过http://www.sinatrarb.com/configuration.html它告诉我要set :environment, :production. 我的问题是,我该如何指定它:“在 Heroku 中,将环境设置为生产环境,否则留在测试/开发中。”

此外,即使在放置 line 之后set :environment, :production,我也不认为它正在工作,因为当我尝试rackup在本地使用该应用程序时,它仍在运行(当我知道(或我认为我知道)它不应该因为我还没有安装我电脑上的postgres)。

宝石文件

group :production do
  gem 'dm-postgres-adapter'
end

group :development, :test do
  gem 'dm-sqlite-adapter', "~> 1.2.0"
end
4

2 回答 2

17

Sinatra 环境与正在加载的生产组内的 gem 无关。这些是分开的,不能相互配合。

Sinatra 从RACK_ENV环境变量中获取环境,只需启动它RACK_ENV=production rackup

Bundler 的工作方式有点不同,您可以选择在运行 bundle install 时应该排除哪些组:bundle install --without production

于 2013-10-17T07:16:27.680 回答
5

Sinatra 使用APP_ENV环境变量。正如您所提到的,您也可以通过设置显式设置它。

指定部署环境的符号;通常设置为 :development、:test 或 :production 之一。:environment 默认为 APP_ENV 环境变量 (ENV['APP_ENV']) 的值,或者在未设置 APP_ENV 环境变量时为 :development。

这就是你告诉 Sinatra 环境的方式。

于 2019-07-04T19:51:43.393 回答