Как развернуть приложения в стойке с ruby1.9? - PullRequest
2 голосов
/ 25 июня 2011

Я пытался запустить простое веб-приложение Hello World на Sinatra.

У меня есть следующие настройки:

  • config.ru

    require 'hello.rb'
    run Sinatra::Application
    
  • hello.rb

    require "sinatra"
    
    get "/" do
        "Hello World!\n"
    end
    
  • Gemfile

    source :rubygems
    gem 'sinatra'
    

Это работает на моемлокальный компьютер, если я запускаю ruby hello.rb, ruby1.9.1 hello.rb или rackup и захожу по правильному адресу в браузере.Тем не менее, это не работает при развертывании на heroku или если я запускаю rackup1.9.1.Я получаю следующую ошибку:

<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- hello.rb (LoadError)
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from config.ru:1:in `block in <main>'
    from /usr/lib/ruby/1.9.1/rack/builder.rb:46:in `instance_eval'
    from /usr/lib/ruby/1.9.1/rack/builder.rb:46:in `initialize'
    from config.ru:1:in `new'
    from config.ru:1:in `<main>'
    from /usr/lib/ruby/1.9.1/rack/builder.rb:35:in `eval'
    from /usr/lib/ruby/1.9.1/rack/builder.rb:35:in `parse_file'
    from /usr/lib/ruby/1.9.1/rack/server.rb:113:in `app'
    from /usr/lib/ruby/1.9.1/rack/server.rb:189:in `wrapped_app'
    from /usr/lib/ruby/1.9.1/rack/server.rb:155:in `start'
    from /usr/lib/ruby/1.9.1/rack/server.rb:83:in `start'
    from /usr/bin/rackup1.9.1:4:in `<main>'

Как мне это работает?Я думаю, что config.ru должен быть другим, но я не знаю, что изменить.

1 Ответ

1 голос
/ 25 июня 2011

Попробуйте выполнить

require './hello'

или

require_relative 'hello'

Текущий каталог отсутствует в LOAD_PATH по умолчанию в Ruby 1.9.2.

...