Приложение Sinatra - Дробовик не работает - "не могу загрузить такой файл - стойка /commonlogger (LoadError)"
Когда я пытаюсь запустить приложение Sinatra с помощью Shotgun, я вижу LoadError:
E-MBP:test_app admin$ shotgun app.rb
/Users/admin/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `require': cannot load such file -- rack/commonlogger (LoadError)
from /Users/admin/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `rescue in require'
from /Users/admin/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require'
from /Users/admin/.rvm/gems/ruby-2.3.1/gems/shotgun-0.9.1/bin/shotgun:112:in `<top (required)>'
from /Users/admin/.rvm/gems/ruby-2.3.1/bin/shotgun:23:in `load'
from /Users/admin/.rvm/gems/ruby-2.3.1/bin/shotgun:23:in `<main>'
from /Users/admin/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `eval'
from /Users/admin/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `<main>'
Там не было ошибки раньше!
"ruby app.rb" все еще работает, и я вижу свою главную страницу в браузере:
E-MBP:test_app admin$ ruby app.rb
== Sinatra (v1.4.7) has taken the stage on 4567 for development with backup from Thin
Thin web server (v1.7.0 codename Dunder Mifflin)
Maximum connections set to 1024
Listening on localhost:4567, CTRL+C to stop
Как я могу решить эту проблему?
E-MBP:test_app admin$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
E-MBP:test_app admin$ rvm -v
rvm 1.27.0 (master) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
Папка Sinatra содержит только один файл - test_app/app.rb:
require 'sinatra'
get '/' do
"Hello!"
end
Драгоценные камни грабли / дробовик / синатра актуальны:
E-MBP:test_app admin$ gem update rake
Updating installed gems
Nothing to update
E-MBP:test_app admin$ gem update shotgun
Updating installed gems
Nothing to update
E-MBP:test_app admin$ gem update sinatra
Updating installed gems
Nothing to update
1 ответ
Решение
Я столкнулся с той же ошибкой и нашел, добавив gem 'shotgun'
к моему проекту Gemfile
и в комплекте я смог обойти эту ошибку.