【发布时间】:2011-08-15 11:31:54
【问题描述】:
我已经成功编写了一个小 Sinatra 应用程序,并且已经成功地将它部署在 heroku 上。
但是,我想在本地计算机上以开发模式运行该应用程序,并且一旦我将其推送到远程存储库,我想在 heroku 上将其设为生产模式。
目前我可以实现其中任何一个选项。当我将 config.ru 更改为以下值时:
require 'rubygems'
require 'sinatra'
require 'sinatra/reloader'
require "./calc.rb"
enable :logging
set :environment, :development
set :port, 4567
我可以通过ruby config.ru 在本地(在端口 4567 上)运行它。当我将 config.ru 更改为此:
require 'rubygems'
require 'sinatra'
require 'sinatra/reloader'
require "./calc.rb"
enable :logging
set :environment, :production
set :port, 4567
run Sinatra::Application
我能够让它在 Heroku(端口 80)上运行。
但我不能在开发和生产中使用相同的配置。
我想要类似的东西:
ruby config.ru dev 用于开发,ruby config.ru 用于生产。
附加信息:
当我尝试在本地机器上运行生产 config.ru 时,我得到:
$ ruby config.ru
(eval):2:in `method_missing': undefined method `run' for main:Object (NoMethodError)
from (eval):4:in `__send__'
from (eval):4:in `method_missing'
from config.ru:10
【问题讨论】: