除了在Rails中使用Webrick之外,如何使用其他Webrick(不是当前Ruby的版本)

除了在Rails中使用Webrick之外,如何使用其他Webrick(不是当前Ruby的版本),ruby,bundler,Ruby,Bundler,我试图在本地机器上使用Webrick作为一个简单的web服务器。但是,我不想使用Ruby 2.6中包含的Webrick,而是希望使用它之外的一个副本。我正在使用bundler,这是我的文件: gem 'webrick', path: '/Users/jht/jht-webrick/webrick' 当我进行捆绑信息webrick时,我得到: * webrick (1.6.0) Summary: HTTP server toolkit Homepage: https://ww

我试图在本地机器上使用Webrick作为一个简单的web服务器。但是,我不想使用Ruby 2.6中包含的Webrick,而是希望使用它之外的一个副本。我正在使用bundler,这是我的文件:

gem 'webrick', path: '/Users/jht/jht-webrick/webrick'
当我进行
捆绑信息webrick
时,我得到:

  * webrick (1.6.0)
    Summary: HTTP server toolkit
    Homepage: https://www.ruby-lang.org
    Path: /Users/jht/jht-webrick/webrick 
然而,当我启动它时,它使用了附带的ruby 2.6 webrick。如何使其使用GEM文件中指定的webrick

我正在使用这个脚本(您可以看到我在哪里尝试更新加载路径并直接加载源):


要使捆绑解决依赖关系,我认为您需要添加以下设置:

需要“绑定器”
Bundler.setup

在ruby脚本文件的顶部

使用bundler强制执行rubygems版本时,您需要在bundler的上下文中运行

这可以通过两种方式完成:

  • 在执行的代码中添加

    需要“绑定器”
    Bundler.setup
    
  • 通过使用bundler调用执行命令,例如
    bundle exec ruby src/main.rb


  • 您可以尝试使用“bundle exec”作为服务器命令的前缀。
    # $LOAD_PATH.unshift('../webrick/')
    
    # puts "load path: #{$LOAD_PATH}"
    
    # load '../webrick/lib/webrick.rb'
    
    require 'webrick'
    
    root = File.expand_path './public_html'
    server = WEBrick::HTTPServer.new :Port => 8000, :DocumentRoot => root
    
    trap 'INT' do server.shutdown end
    
    server.start