【问题标题】:Ruby Sinatra configured to work on production and developmentRuby Sinatra 配置为用于生产和开发
【发布时间】:2017-04-08 06:36:45
【问题描述】:

我在 Sinatra 上创建了应用程序,它代表一个简单的 API。我想对生产和开发进行部署。我想在部署的时候选择,是dev还是production,一些方​​法的逻辑应该改变,取决于部署类型。 有什么想法,怎么做以及解决这个问题的一些例子。

示例: 我有代码

get '/api/test' do
  return "It is dev"
end

但在部署到生产后我想在运行 /api/test 后查看

It is PROD

如何实现?

【问题讨论】:

标签: ruby sinatra


【解决方案1】:

根据Sinatra Documentation

可以通过 RACK_ENV 环境变量设置环境。这 默认值为“开发”。在“开发”环境中所有 模板在请求之间重新加载,特殊的 not_found 和 错误处理程序在您的浏览器中显示堆栈跟踪。在里面 “生产”和“测试”环境,默认缓存模板。

要运行不同的环境,请设置 RACK_ENV 环境变量:

RACK_ENV=生产 ruby​​ my_app.rb

你也可以使用development?production?方法来改变逻辑:

get '/api/test' do
  if settings.development?
    return "It is dev"
  else if settings.production?
    return "It is PROD"
  end
end

如果settings.development?不行,可以试试Sinatra::Application.environment == :development

【讨论】:

    【解决方案2】:

    试试这个

    get '/api/test' do
      if settings.development?
        return "It is dev"
      else
        return "Not dev"
      end
    end
    

    Official guide -> environments

    【讨论】:

    • 我认为ruby myapp.rb -E productionlike this
    猜你喜欢
    • 2015-07-17
    • 2012-10-30
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2018-08-20
    • 1970-01-01
    • 2018-06-15
    相关资源
    最近更新 更多