【问题标题】:Heroku app fails to start - `require': no such file to load -- sinatratestapp (LoadError)Heroku 应用程序无法启动 - `require': no such file to load - sinatratestapp (LoadError)
【发布时间】:2011-04-27 19:00:18
【问题描述】:

我正在尝试让我的 Heroku 应用程序使用 bamboo-mri-1.9.2 堆栈运行。当然,它在 Ruby 1.9.2 上本地运行良好。但是在生产时,它会在启动时崩溃,并执行config.ru,如下所示:

require 'sinatratestapp'
run Sinatra::Application

我的.gems 文件:

sinatra --version '>= 1.0'

应用程序本身为sinatratestapp.rb:

require 'rubygems'
require 'sinatra'

get '/' do
  "Hello from Sinatra on Heroku!"
end

这就是我在项目中的全部内容,并尝试在 Heroku 结果上运行它:

<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- sinatratestapp (LoadError)
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from config.ru:1:in `block (3 levels) in <main>'
        ...
-----> Your application is requiring a file that it can't find.

       Most often this is due to missing gems, or it could be that you failed
       to commit the file to your repo.  See http://docs.heroku.com/gems for
       more information on managing gems.

       Examine the backtrace above this message to debug.

我尝试按照它的指导去做,但作为一个 Ruby 菜鸟,我的考试没有结果。

【问题讨论】:

  • 我能够重复这个问题。我建议向 Heroku 发送支持请求。

标签: ruby heroku sinatra


【解决方案1】:

在 Heroku 支持请求和this question 的帮助下,我找到了解决方案。

Ruby 1.9.2 不会自动包含“.”。在 $LOAD_PATH 中。要解决此问题,请通过声明 require './sinatratestapp' 而不是 require 'sinatratestapp' 来修改 config.ru

【讨论】:

  • 它在本地运行的原因是我在本地运行时没有使用 config.ru。
  • 谢谢,遇到了完全相同的问题。希望工头等对 Windows 不过敏!
  • 使用rackup在本地启动应用程序测试config.ru。
【解决方案2】:

您可以将以下行放入您的 config.ru 文件中,它也将解决问题。这也将在应用程序范围内进行,因此它会带回 1.9.2 之前的行为感觉:

$LOAD_PATH.unshift(Dir.getwd)

注意:我无法在 Heroku 上进行测试

我的问题:让 unicorn 在没有 Gemfile、config.ru 或 config/unicorn.rb 的 (ruby

【讨论】:

    【解决方案3】:

    我相信我在尝试 Sinatra 时遇到了这个问题。 Ruby 1.9 默认不包含路径中的当前目录,因此您必须在我们的config.ru 文件中隐式声明require 'sinatratestapp'

    【讨论】:

      【解决方案4】:

      感谢您的提示。 Heroku 帖子 http://blog.heroku.com/archives/2009/3/5/32_deploy_merb_sinatra_or_any_rack_app_to_heroku/ 中没有提到 .gems 文件

      【讨论】:

        【解决方案5】:

        我的 Sinatra 项目具有相同的布局和外观,唯一的区别是在我的 .gems 文件中我没有指定版本。

        我的 .gems 看起来像这样:

        sinatra
        hpricot
        

        【讨论】:

        • 没有帮助。你也在bamboo-mri-1.9.2 stack 上吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-28
        • 2012-06-24
        相关资源
        最近更新 更多