Heroku:rails:得到“没有这样的文件加载 - URI(LoadError)”

时间:2023-01-19 14:05:17

Just started using heroku with a rails application and I am not able to get the rails application start.

刚开始使用带有rails应用程序的heroku,我无法启动rails应用程序。

Ruby version on Heroku...

Heroku上的Ruby版本......

$ heroku run "ruby -v"

$ heroku运行“ruby -v”

Running `ruby -v` attached to terminal... up, run.1
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

$ heroku ps

$ heroku ps

=== web: `bundle exec thin start -R config.ru -e $RAILS_ENV -p $PORT`
web.1: crashed for 6m

$ heroku logs

$ heroku日志

2012-08-17T10:06:49+00:00 heroku[web.1]: State changed from crashed to starting
2012-08-17T10:06:52+00:00 heroku[web.1]: Starting process with command `bundle exec thin start -R config.ru -e production -p 31657`
2012-08-17T10:06:54+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5)
2012-08-17T10:06:54+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5)
2012-08-17T10:06:56+00:00 app[web.1]: Connecting to database specified by DATABASE_URL
2012-08-17T10:06:57+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:317:in `rescue in depend_on': No such file to load -- URI (LoadError)
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:312:in `depend_on'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:225:in `require_dependency'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/engine.rb:439:in `block (2 levels) in eager_load!'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/engine.rb:438:in `block in eager_load!'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/engine.rb:438:in `each'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/engine.rb:436:in `each'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/engine.rb:436:in `eager_load!'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/application/finisher.rb:53:in `block in <module:Finisher>'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/initializable.rb:30:in `instance_exec'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/initializable.rb:30:in `run'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/initializable.rb:55:in `block in run_initializers'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/initializable.rb:54:in `each'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/railtie/configurable.rb:30:in `method_missing'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/config/environment.rb:5:in `<top (required)>'
2012-08-17T10:06:57+00:00 app[web.1]:   from config.ru:3:in `require'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/initializable.rb:54:in `run_initializers'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/application.rb:136:in `initialize!'
2012-08-17T10:06:57+00:00 app[web.1]:   from config.ru:3:in `block in <main>'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize'
2012-08-17T10:06:57+00:00 app[web.1]:   from config.ru:1:in `new'
2012-08-17T10:06:57+00:00 app[web.1]:   from config.ru:1:in `<main>'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/controllers/controller.rb:181:in `load_rackup_config'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/rack/adapter/loader.rb:33:in `eval'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/runner.rb:185:in `run_command'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/controllers/controller.rb:71:in `start'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/rack/adapter/loader.rb:33:in `load'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/runner.rb:151:in `run!'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/bin/thin:6:in `<top (required)>'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/bin/thin:23:in `load'
2012-08-17T10:06:57+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/bin/thin:23:in `<main>'
2012-08-17T10:06:58+00:00 heroku[web.1]: Process exited with status 1
2012-08-17T10:06:58+00:00 heroku[web.1]: State changed from starting to crashed
2012-08-17T10:07:00+00:00 heroku[router]: Error H10 (App crashed) -> GET boiling-bayou-5291.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
2012-08-17T10:07:00+00:00 heroku[router]: Error H10 (App crashed) -> GET boiling-bayou-5291.herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes=

The culprit seems to be the following above:

罪魁祸首似乎如下:

2012-08-17T10:06:57+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:317:in `rescue in depend_on': No such file to load -- URI (LoadError)

Clearly there is an issue with loading "URI" module.

显然加载“URI”模块存在问题。

Question is what's missing? Moreover ruby version that heroku reported was 1.9.3, then why is that in the logs above I see "1.9.1." Is that part of the problem?

问题是缺少什么?此外,heroku报告的ruby版本是1.9.3,那么为什么在上面的日志中我看到“1.9.1”。这是问题的一部分吗?

Thanks much!

2 个解决方案

#1


3  

For the record, Mac OS X file systems are case-insensitive by default, whereas Linux filesystems are case-sensitive. Therefore URI and uri are the same on Mac, while require 'URI' will fail on Linux, as the file you're looking for is called uri.

根据记录,Mac OS X文件系统默认情况下不区分大小写,而Linux文件系统区分大小写。因此,在Mac上,URI和uri是相同的,而在Linux上需要'URI'会失败,因为您要查找的文件称为uri。

#2


0  

Found the issue...

发现问题......

I was using require 'URI' in my code... if I change this to require 'uri' it works on heroku.

我在我的代码中使用require'URI'...如果我将其更改为要求'uri',则它可以在heroku上运行。

To be clear, require 'URI' was working on my local dev environment.

要清楚,要求'URI'正在我的本地开发环境中工作。

#1


3  

For the record, Mac OS X file systems are case-insensitive by default, whereas Linux filesystems are case-sensitive. Therefore URI and uri are the same on Mac, while require 'URI' will fail on Linux, as the file you're looking for is called uri.

根据记录,Mac OS X文件系统默认情况下不区分大小写,而Linux文件系统区分大小写。因此,在Mac上,URI和uri是相同的,而在Linux上需要'URI'会失败,因为您要查找的文件称为uri。

#2


0  

Found the issue...

发现问题......

I was using require 'URI' in my code... if I change this to require 'uri' it works on heroku.

我在我的代码中使用require'URI'...如果我将其更改为要求'uri',则它可以在heroku上运行。

To be clear, require 'URI' was working on my local dev environment.

要清楚,要求'URI'正在我的本地开发环境中工作。