【问题标题】:How to deploy rack apps with ruby1.9?ruby1.9如何部署机架应用?
【发布时间】:2011-06-25 18:02:06
【问题描述】:

我一直在尝试在 Sinatra 上运行一个简单的 hello world web 应用程序。

我有以下设置:

  • config.ru

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

    require "sinatra"
    
    get "/" do
        "Hello World!\n"
    end
    
  • 宝石文件

    source :rubygems
    gem 'sinatra'
    

如果我运行 ruby hello.rbruby1.9.1 hello.rbrackup 并在我的浏览器中转到正确的地址,这适用于我的本地计算机。但是,这在部署到 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 应该有所不同,但我不知道要更改什么。

【问题讨论】:

    标签: ruby heroku sinatra rack


    【解决方案1】:

    尝试做

    require './hello'
    

    require_relative 'hello'
    

    在 Ruby 1.9.2 中默认情况下,当前目录不存在于 LOAD_PATH 中。

    【讨论】:

      猜你喜欢
      • 2010-09-06
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 2020-11-29
      • 2019-10-09
      相关资源
      最近更新 更多