问题标签 [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 投票
1 回答
844 浏览

ruby - Rack::Test not able to find web app cookie

While testing a Sinatra app with Cucumber, Rack::Test was not able to find the cookie that my app created, even though I could clearly see that it was in the Rack::Test::CookieJar object by dumping it with "p".

0 投票
1 回答
510 浏览

ruby - 尝试提供静态文件时机架抛出错误

我调用 Rack::File:Class 的私有方法“打开”。实在看不出问题出在哪里。运行机架 1.1。请帮忙...

0 投票
1 回答
1127 浏览

ruby-on-rails - 机架中间件死锁

我在 Rails 应用程序中包含了这个简单的 Rack 中间件:

将其插入 environment.rb 中:

我正在使用 Rails 2.3.5、Webrick 1.3.1、ruby 1.8.7

当应用程序在生产模式下启动时,一切都按预期工作 - 每个请求都被 Hello 中间件拦截,并返回“Hello”。但是,在开发模式下运行时,第一个请求返回“Hello”,但下一个请求挂起。

在 webrick 处于挂起状态时中断它会产生以下结果:

与开发模式下的类重新加载器有关。异常中还提到了死锁。

有什么想法可能导致这种情况吗?关于调试此问题的最佳方法有什么建议吗?

更新

看起来它可能与这个问题有关:

https://rails.lighthouseapp.com/projects/8994/tickets/3153-actioncontrollerintegrationsession-broken-in-234

0 投票
4 回答
4734 浏览

json - Sinatra,JavaScript 跨域请求 JSON

我在 Sinatra 之上运行 REST-API 构建。现在我想编写一个从 API 获取数据的 jQuery 脚本。

Sinatra 被告知使用 JSON 响应

一个简单的路线看起来像

我的 jQuery 脚本是一个简单的 ajax 调用

实际上,只要两者都在相同的 IP、API 和请求 JS 上运行,一切都可以正常工作。不过,我已经尝试过使用 JSONP for Rack,但没有任何积极的结果。可能我只需要提示如何进行。

0 投票
2 回答
349 浏览

ruby-on-rails - 你能让用户上传 Sinatra 应用程序并在 Rails 中作为中间件运行它们吗?

我想让用户编写小型自定义应用程序(想想 Wordpress 上的主题或插件)并在我的网站上上传/运行它们。

我正在考虑为此使用 Sinatra 应用程序,因为它会给用户很大的灵活性,然后在我的 rails 应用程序中将它们作为中间件运行。

但我无法弄清楚这对安全的影响。我尝试创建一个简单的 sinatra 应用程序作为中间件,它可以访问所有的 rails 模型和所有东西——所以这很糟糕。有没有办法让机架保持这些独立,以便 sinatra 应用程序有效地沙盒化并且不能做任何坏事(在 API 或我为它们设置的某种特定方式进行通信之外)?

可能有一种更简单的方法可以实现这一点,我也没有想到,所以欢迎提出想法。谢谢!

0 投票
1 回答
1328 浏览

ruby-on-rails - 在 Rails 应用程序中显示响应时间

我想This page took x seconds在我的 rails 应用程序的每个页面的底部显示一个小部件。我想x反映请求在我的服务器上花费的大致时间。这样做的好方法是什么?

编辑:我的生产服务器位于 phusion 乘客和 mongerel 的开发环境中。希望有一个适用于两者的解决方案。

更新:我认为就这个问题而言,railscast 解决方案有点过火。我修改了那里建议的中间件,只设置一个常量并在我的布局中使用它。这样我就不必更改任何内容长度的标题。再次感谢中微子。机架中间件非常有趣。

0 投票
1 回答
4869 浏览

ruby - 机架 URL 映射

我正在尝试编写两种 Rack 路由。Rack 允许我们编写这样的路由:

就我而言,我想处理这些路线:

  • “/”或“索引”
  • "/*" 以匹配任何其他路由

所以我尝试了这个:

这很好用,但是......我不知道如何添加“/”路径(作为“/index”路径的替代)。根据我的测试,路径 '/*' 不被解释为通配符。你知道我该怎么做吗?

谢谢

0 投票
1 回答
299 浏览

ruby - 如果未指定参数,则覆盖默认路由

考虑以下代码段:

如果未指定名称,如何设置默认参数?如果我可以将默认参数设置为 Tom,这是否也会路由 URL,以便 /hello/ 将自动重定向到 /hello/tom?

0 投票
2 回答
1100 浏览

ruby-on-rails - Rails 3 作为 Rack 中间件

由于 Rails 与 Rack 完全兼容,我一直在思考如何设置 rackup 文件,以便 Rails 应用程序只是一个中间件,然后一个请求可能会在中间件堆栈的下方到达另一个应用程序。

我真正想要的是使用 Rails 应用程序稍后在中间件堆栈中处理较小的机架应用程序的身份验证和授权,这可能在 Rails 3 中实现吗?

0 投票
2 回答
702 浏览

ruby-on-rails - HTML 编码 UTF-8 字符串被修改为 latin1

我正在解析我的 nginx 日志,并且我想从 HTTP_REFERER 字符串中发现一些详细信息,例如,用于查找网站的查询字符串。一位用户输入了“México”,在日志中被编码为“query=M%E9xico”。

通过这个Rack::Utils.parse_query('query=M%E9xico')你得到一个哈希,{"query" => "M?xico"}

当您将“M?exico”塞入 Postgres(但不是更宽容的 SQLite)时,它会呕吐,因为字符串不是正确的 UTF-8。查看http://rack.rubyforge.org/doc/Rack/Utils.html#M000324,unescape 正在打包一个十六进制字符串。

如何将字符串转换回 UTF-8,或者我可以让 parse_query 首先返回 UTF-8。