- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我已经在 irb
中安装了 sinatra gem,如果我输入,
require 'sinatra'
它返回 true
。
但是当我这样做的时候
rackup -d config.ru
它告诉我
nil
Exception `LoadError' at /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36 - cannot load such file -- sinatra
这是我的config.ru
require './app'
set :environment, ENV['RACK_ENV'].to_sym
set :app_file, 'app.rb'
disable :run
run Sinatra::Application
app.rb
require 'rubygems'
require 'sinatra'
get '' do
'Hello World'
end
我不知道出了什么问题。
$ which ruby
/usr/local/bin/ruby
$ which rackup
/usr/local/bin/rackup
$ ruby -v
ruby 1.9.3p374 (2013-01-15 revision 38858) [x86_64-linux]
$ rackup -v
Rack 1.2 (Release: 1.5)
最佳答案
我认为这只是设置 -d
选项的详细输出。服务器是否真正启动(在产生大量输出之后)?
事情是这样的。 Using -d
sets Ruby’s $DEBUG
flag to true
.然后 Rack 尝试通过 config.ru
加载应用程序,这反过来会加载您的 app.rb
。 app.rb
中的第一件事是 require 'sinatra'
。
Rubygems 用自己的方法替换了原来的require
方法。当你调用 require
时 tries to load the file normally using the existing load path and the original require
method .如果 gem 尚未加载,这将引发 LoadError,Rubygems catches在加载 gem 之前。
设置了 $DEBUG
标志后,Ruby 将在引发异常时生成一条消息,即使它已被挽救和处理,这就是您所看到的。
要避免这种情况,只需在调用 rackup
时省略 -d
标志(也许使用 -w
启用警告会给你足够的详细的输出不会让你淹没太多细节)。
如果服务器没有启动,那么这将是一个不同的问题,而不是找不到 Sinatra。如果是这种情况,您需要检查其余输出以寻找线索。
(请注意,我最初以为发生了其他事情,这就是我在评论中提出的问题。)
关于ruby - Rack : cannot load such file 'sinatra' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14677560/
我正在做一些中间件,在它到达 Rails 之前更改 authenticity_token 参数。 我可以看到 env.inspect 给出了 rack.request.form_vars 和 rack
我在带有 gem rack 1.3.2 和 1.2.1 的 debian 上安装了 passenger 3.0.9。 使用带有 passenger e bundler 的 rails 3.0 应用程序
我熟悉 Rails.root在 Rails 中,它会告诉您当前应用程序的目录。这有时非常方便。 现在我正在开发一个 Rack 应用程序(Rails 基于它)。我如何找到 Rails.root相当于 R
这个问题在这里已经有了答案: You have already activated X, but your Gemfile requires Y (12 个答案) 关闭 8 年前。 我有一个在 Dr
我想根据响应主体的大小有条件地启用 Rack::Deflater,如下所示: use Rack::Deflater, :if => lambda { |*, body| body.map(&:byte
我写了一段 Rack Middleware 来自动解压缩压缩的请求体。代码似乎工作正常,但是当我将它插入我的 Rails 应用程序时,我从 ActionController::ParamsParser
我想我在我的头上,无法弄清楚如何调试或从这里去哪里?!任何指导将不胜感激! 问题: 开发环境:一切正常 生产:我收到“请求超时”错误 目标: 让“www.site.com/blog”显示来自“blog
我有一个 Middleman我正在使用 Rack::TryStatic 服务的应用程序。 这是config.ru。 use Rack::TryStatic, root: 'build', ur
很抱歉,如果这个问题与另一个问题重复,但我还没有找到它。 我有一些 Grape API(它们是 Rack 应用程序),其中之一(用户 API)使用中间件进行身份验证。 在我的 config.ru 文件
如何在单个 Rack 应用程序中与多个 session cookie(针对不同的路径或域)进行交互? 例如,考虑以下使用 3 个位置的应用程序: www.my-app.net => 主应用 www.m
我目前有以下内容: use Rack::Rewrite use Rack::Cache, {:verbose=>true, :metastore=>"memcached://localhost:112
我有一个应用程序,它有一个包含静态文件的 htdocs 文件夹和位于 httpd/cgi-bin 文件夹中的几个 CGI 脚本。我如何使用带有 config.ru 的 Rack 来为这个应用程序提供服
给定一个非 Rails 的 Rack 应用程序, 构建器.rb: def app Rack::Builder.new{ use Rack::Static, urls:static_path
我试图完全理解 Rack 中并发请求处理的选项。我已经使用 async_sinatra 构建了一个长轮询应用程序,现在正在使用 throw :async 和/或 Thin 的 --threaded 标
我在使用 rSpec 的 Controller API 进行测试时遇到了很大的麻烦。现在我正在使用中间件身份验证解决方案 ( Warden ),当我运行规范时,中间件添加的代理不存在,所有身份验证测试
这是一个常见问题,但似乎没有一个答案能解决问题。我得到了通常的:You have already activated rack 1.4.1, but your Gemfile requires rac
当运行 rspec 以使用 Sinatra Base 测试功能测试时,我们收到以下错误。 这就是我们的功能测试的样子 require 'capybara/rspec' feature 'Ent
从 Selenium 切换到 PhantomJs/Poltergeist 时,我一直收到此错误。有人知道我做错了什么吗?如果我将驱动程序切换到 selenium,脚本将完美运行。每当我注释掉 defa
Rack::Session::Pool 有哪些不同的用例?和 Rack::Session::Cookie ? 据我了解(如果我错了请纠正我): Cookie 将 所有 session 键值对直接存储在
我正在处理 oauth 1.0(twitter 和 flickr)。网站工作在80端口,oauth服务器工作在8080端口 算法: 向oauth服务器发送ajax请求以检查用户是否有有效的access
我是一名优秀的程序员,十分优秀!