Ruby Sinatra 编译错误:找不到服务器处理程序(thin、puma、reel、HTTP、webrick)。(运行时错误)

Jos*_*ert 5 ruby webserver rubygems web-applications sinatra

我是 Ruby Sinatra 的新手,我尝试使用以下代码使用 Sinatra 构建一个简单的 Web 应用程序:

require 'rubygems'
require 'sinatra'

get '/firstapp' do
    "Welcome to my first Sinatra App !"
end
Run Code Online (Sandbox Code Playgroud)

当我尝试在 Windows 命令提示符下使用命令“ruby file.rb”运行它时,出现错误:

C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1755:in `detect_rack_handler': Server handler (thin,puma,reel,HTTP,webrick) not found. (RuntimeError)                                             
from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1493:in `run!'                                                                                                                       
from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/sinatra-2.1.0/lib/sinatra/main.rb:45:in `block in <module:Sinatra>'
Run Code Online (Sandbox Code Playgroud)

当我安装sinatra时,我忘记将路径设置为C:(ruby安装目录)\bin。我安装sinatra后已经设置了路径

我不知道发生了什么事。有人可以帮我弄这个吗?

小智 6

使用以下命令安装最后一个 gem

$ gem install thin
$ gem install puma
$ gem install reel
$ gem install http
$ gem install webrick
Run Code Online (Sandbox Code Playgroud)

为我工作


Mic*_*tan 5

我在使用 Gemfile 管理我的 gem 时遇到了这个问题,如果您是这种情况,而不是gem install像@yaya-hc 建议的那样使用,您可以将它们添加到您的 Gemfile 中

gem thin
gem puma
gem reel
gem http
gem webrick
Run Code Online (Sandbox Code Playgroud)

然后运行bundle install并重试。

  • 没有好的建议 - 这会向您的应用程序的依赖项添加 5 个应用程序服务器。仅添加其中一项,而不是全部。 (2认同)