问题标签 [rack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2845 浏览

ruby - 使用 Rack::Test 和 Sinatra 测试控制器实例变量

我有一个 Sinatra 应用程序,根据用户是否登录,该应用程序将页面提供为只读或可编辑的。

控制器设置一个变量@can_edit,视图使用它来隐藏/显示编辑链接。如何@can_edit在我的测试中 test 的值?我不知道如何在 Rack::Test 下获取控制器的当前实例。

我曾经在控制器class_eval中存根该logged_in?方法,但我不得不求助于检查last_response.body我的编辑链接以查看是否@can_edit已设置。

如何@can_edit直接测试的值?

0 投票
2 回答
1812 浏览

ruby - Sinatra / Rack 因 url 中的非 ascii 字符而失败

我在 /find/Wrocław "\xC5" 从 ASCII-8BIT 到 UTF-8 得到 Encoding::UndefinedConversionError

出于某种神秘的原因,sinatra 将字符串作为 ASCII 而不是 UTF-8 传递,因为它应该。

我发现了某种丑陋的解决方法...我不知道为什么 Rack 假设编码是 ASCII-8BIT ...无论如何,一种方法是使用 string.force_encoding("UTF-8")... 但是做这对所有参数来说都很乏味

0 投票
2 回答
4991 浏览

ruby-on-rails - Rails 机架 1.0 错误

当我尝试启动脚本/服务器时出现此错误:

这很烦人,因为我做到了:

但它总是说那个错误。我有 Rails 2.3.5,但我认为错误与 Rails 无关,但更像是与服务器相关的大声笑。

感谢帮助!

0 投票
4 回答
921 浏览

sinatra - 乘客上的 Sinatra 总是在第一次尝试时失败

我有一个小型 Sinatra 应用程序,我正在使用Passenger 的共享主机帐户上运行。但是,一段时间后第一次访问该应用程序时,我收到一个乘客错误页面,提示该应用程序无法启动。通常是因为找不到 Sinatra。

我假设这只是产生新实例时的正常延迟。但是,有没有办法延迟尝试加载 Siantra 直到它的乘客满载?

0 投票
1 回答
2412 浏览

ruby-on-rails - 使用 Sinatra、Thin、Rails 和 Rack::Cascade 时出现 Rack::Session:Cookie 错误

我有一个组合的 Sinatra/Rails 应用程序,它使用 Rack::Session::Cookie 共享一个会话。该应用程序在使用Rack::Handler::Thin.run app启动时运行良好,但如果 rackup 文件以Thin start 启动,我会在 Rack::Session::Cookie 中收到错误:

机架文件如下所示:

0 投票
1 回答
817 浏览

http-headers - 我应该在哪里设置 HTTP 标头,例如 Expires?

我想在带有 Nginx 的 Phusion Passenger 上使用 Sinatra 部署一个应用程序。如果我想在我的静态内容(例如样式表)上设置 Expires 标头,我似乎可以在三个地方完成此操作。

  1. 在我的 Sinatra 应用程序中,使用 API
  2. 使用 Rack 中间件
  3. 在我的部署的服务器配置中

以下哪种方法是设置 HTTP 标头的最佳位置?

0 投票
2 回答
2326 浏览

ruby-on-rails - 带有机架中间件问题的机架 rSpec 控制器测试

我在使用 rSpec 的控制器 API 进行测试时遇到了很大的麻烦。现在我正在使用中间件身份验证解决方案(Warden),当我运行规范时,中间件添加的代理不存在,所有身份验证测试都NilPointerException在到处乱扔 s。

rSpec 似乎不是故意将中间件添加到最终应用程序中,我想知道是否有办法对 rSpec 进行猴子补丁以实现这一目标。

我已经用黄瓜测试了整个事情,但是这是对旧身份验证版本的重构,并且有几个控制器测试依赖于身份验证逻辑才能工作。

提前致谢。

0 投票
3 回答
1829 浏览

ruby-on-rails - Rack-Bug 面板不会出现在我的 Rails 应用程序中

我已经为我的 Rails 应用程序安装了 Rack-Bug,但无法显示面板。

项目:http ://github.com/brynary/rack-bug 附加说明:https ://github.com/brynary/rack-bug/wiki/security 还有更多说明:机架错误安装问题。服务器没有启动 (这个文档真的很烂)

从顶部:

我将 config.middleware.use 'Rack::Bug' 添加到 config/environments/development.rb。我添加了一个文件 config/initializers/rack_bug.rb 包含以下内容:

(我为我的桌面指定了 IP 地址。该应用程序在我的 .2.3 的 linux 开发服务器上运行)

我去了 / rack_bug /bookmarklet.html 并将“Toggle Rack::Bug”书签拖到我的 Firefox 书签工具栏。我在我的 Rails 应用程序上加载了一个页面,单击“Toggle Rack::Bug”书签,在弹出框中输入密码,单击确定,页面被重新加载 - 但没有 Rack-Bug 面板。

不知道为什么它不起作用,并且没有 irc 频道或谷歌组。

更新:乐趣不断离开。在我的 Windows 桌面上从 Firefox 加载面板仍然没有任何进展。但是,我在我的 linux 开发服务器上启动了 Firefox,抓住了书签,然后转到我的应用程序的主页并单击它。填了密码,重装的时候报500错误。以下是日志输出的前四行:

所以,我还没有解决第一个问题,现在我发现了第二个问题,即使我解决了第一个问题,它仍然存在。第二个错误似乎暗示当错误发生时,开发服务器上的 Firefox实际上正在加载面板,这显然是在 ruby​​-openid 内部。

我觉得比以前更倒退了。

0 投票
5 回答
34670 浏览

ruby - 在 Sinatra 中使用 Rack::CommonLogger

我有一个用 Sinatra 编写的小型网络服务器。我希望能够将消息记录到日志文件中。我已经阅读了http://www.sinatrarb.com/api/index.html和 www.sinatrarb.com/intro.html,我看到 Rack 有一个叫做 Rack::CommonLogger 的东西,但我找不到有关如何访问和使用它来记录消息的任何示例。我的应用程序很简单,因此我将其编写为顶级 DSL,但如果需要,我可以切换到从 SinatraBase 对其进行子类化。

0 投票
9 回答
73599 浏览

ruby-on-rails - 什么是机架中间件?

什么是 Ruby 中的 Rack 中间件?对于“中间件”的含义,我找不到任何好的解释。