我是ruby,git和heroku的新手。我试图构建一个简单的Hello World应用程序并将其部署在heroku上。当我尝试使用heroku提供的URL访问站点时,我在日志中看到以下错误。你能告诉我我做得不对吗。
2011-07-03T01:15:06+00:00 app[web.1]: from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/builder.rb:46:in `instance_eval'
2011-07-03T01:15:06+00:00 app[web.1]: from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/builder.rb:46:in `initialize'
2011-07-03T01:15:06+00:00 app[web.1]: from /home/heroku_rack/heroku.ru:1:in `new'
2011-07-03T01:15:06+00:00 app[web.1]: from /home/heroku_rack/heroku.ru:1:in `<main>'
2011-07-03T01:15:06+00:00 app[web.1]: from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/rack/adapter/loader.rb:36:in `eval'
2011-07-03T01:15:06+00:00 app[web.1]: from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/controllers/controller.rb:175:in `load_rackup_config'
2011-07-03T01:15:06+00:00 app[web.1]: from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/rack/adapter/loader.rb:36:in `load'
2011-07-03T01:15:06+00:00 app[web.1]: from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/controllers/controller.rb:65:in `start'
2011-07-03T01:15:06+00:00 app[web.1]: from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/runner.rb:177:in `run_command'
2011-07-03T01:15:06+00:00 heroku[web.1]: Process exited
2011-07-03T01:15:07+00:00 heroku[web.1]: State changed from starting to crashed
config.ru文件
require 'myapp2'
run Sinatra::Application
myapp2.rb
require 'rubygems'
require 'sinatra'
get '/' do
'Hello World'
end
答案 0 :(得分:4)
您错过了堆栈跟踪的顶部,但看起来问题是require
。
在config.ru
更改
require 'myapp2'
到
require './myapp2'
或
require File.expand_path("../myapp2", __FILE__)
Ruby 1.9.2在加载路径中不再有当前目录,因此require 'myapp2'
无法找到位于同一目录中的应用程序文件。
如果这在你的本地机器上运行,但在Heroku上没有,那么你很可能使用不同版本的Ruby,可能是1.8.7。在本地安装1.9.2是个好主意,这样你就可以在开发和生产中使用相同的版本。或者你可以改变你正在使用的Heroku堆栈;看看the Heroku stack docs