rack相关内容

Ruby Rack:启动和拆卸操作(Tokyo Cabinet 连接)

我在 Rack 上的 Sinatra 中构建了一个非常简单的 REST 服务.它由 3 个 Tokyo Cabinet/Table 数据存储提供支持,这些数据存储具有需要打开和关闭的连接.我有两个直接用 Ruby 编写的模型类,目前它们只是简单地连接、获取或放置他们需要的东西,然后断开连接.显然,这不会长期有效. 我还有一些 Rack 中间件,例如 Warden,它们依赖于这些模型类. ..
发布时间:2022-01-24 15:15:08 其他开发

使用 Rails 2.3.5 绕过机架版本错误

我目前在 Dreamhost 上尝试运行 Rails 2.3.5 应用程序. 情况是这样的,Dreamhost 的服务器安装了 Rails 2.2.2.当然,我不能更新共享主机的 rails 版本,所以我在 vendor.js 中冻结了我的 Rails.Rails 2.3.5 需要 rack v1.0.1 gem.Dreamhost 使用 rack v1.0.0 gem.所以当我尝试定义时: ..
发布时间:2022-01-18 17:45:05 其他开发

Rack::Request - 如何获取所有标头?

标题是不言自明的.有什么方法可以获取标头(Rack::Request.env[] 除外)? 解决方案 Rack 环境中提供 HTTP 标头 传递给您的应用: HTTP_ 变量:对应于客户端提供的 HTTP 请求标头的变量(即名称以 HTTP_ 开头的变量).这些变量的存在与否应与请求中相应 HTTP 标头的存在或不存在相对应. 因此 HTTP 标头以“HTTP_"为前缀并添加到 ..
发布时间:2022-01-17 17:22:39 其他开发

无法让 rack-cors 在 rails 应用程序中工作

我想在我的 Rails 应用程序中实现 CORS,所以我在谷歌上搜索了 rack-cors gem.我按照 README 中的说明做了所有事情,相应地更新了 Gemfile 并更新了 application.rb,如下所示: 模块 YourApp类应用 但它没有用.不管我做什么,在浏览器控制台中我不断收到消息: XMLHttpRequest 无法加载 https://somewebsit ..
发布时间:2022-01-15 19:51:55 其他开发

如何通过 Rack 提供静态文件?

我目前正在开发一个基于 Rack 的应用程序,并希望将所有文件请求(例如 filename.filetype)重定向到指定的文件夹. Rack::Static 仅支持对特殊文件夹(例如“/media")的文件请求. 我是否必须编写自己的 Rack 中间件或是否存在开箱即用的解决方案? 解决方案 要将每个请求重定向到特定路径,请使用 Rack::File(由于某种原因,这个类在最 ..
发布时间:2022-01-05 20:18:41 其他开发

在 Rack::Test 中使用 Cookie

我正在尝试使用 Rack::Test 为我的 Sinatra 应用程序编写 RSpec 测试.我无法理解如何使用 cookie.例如,如果我的应用程序设置了 cookie(不是通过 :session),我如何检查该 cookie 是否设置正确? 另外,我如何使用该 cookie 发送请求? 解决方案 Rack::Test 保存了一个 cookie jar,该 cookie jar 在 ..
发布时间:2022-01-02 09:47:32 其他开发

在 Sinatra 中使用 Rack::CommonLogger

我有一个用 Sinatra 编写的小型网络服务器.我希望能够将消息记录到日志文件中.我已经通读了 http://www.sinatrarb.com/api/index.html 和 www.sinatrarb.com/intro.html,我看到 Rack 有一个叫做 Rack::CommonLogger 的东西,但我找不到任何关于如何访问和使用它来记录消息的例子.我的应用程序很简单,所以我将它编 ..
发布时间:2021-12-19 10:27:23 其他开发

登录 Sinatra?

我无法弄清楚如何使用 Sinatra 记录消息.我不是要记录请求,而是要在我的应用程序中的某些点记录自定义消息.例如,在获取 URL 时,我想记录 "Fetching #{url}". 这是我想要的: 指定日志级别的能力(例如:logger.info("Fetching #{url}")) 在开发和测试环境中,消息将写入控制台. 在生产中,只写出与当前日志级别匹配的消息. 我 ..
发布时间:2021-12-19 10:27:13 其他开发

git、Heroku:拒绝预接收钩子

我正在设置 git 存储库并尝试将其链接到 Heroku.当我运行命令时 git push heroku master 我收到 计数对象:7,完成.Delta 压缩最多使用 2 个线程.压缩对象:100% (5/5),完成.写入对象:100% (7/7),714 字节,完成.总计 7(增量 1),重复使用 0(增量 0)----->Heroku 接收推送!由于无法识别的错误,Heroku 推 ..
发布时间:2021-12-16 22:38:01 其他开发

什么是机架中间件?

Ruby 中的 Rack 中间件是什么?对于“中间件"的含义,我找不到任何好的解释. 解决方案 Rack as Design 机架中间件不仅仅是“过滤请求和响应的一种方式"——它是 管道设计模式,用于使用 Rack 的 Web 服务器. 它非常清晰地分离出处理请求的不同阶段 - 关注点分离是所有设计良好的软件产品的关键目标. 例如,对于 Rack,我可以将管道的各个阶段分 ..
发布时间:2021-12-02 12:34:55 其他开发

有什么方法可以从 heroku 提供 gzip 资产?

我想知道是否有任何方法可以让 Rails 网络服务器(瘦)为资产管道创建的 *.gz 文件提供服务.据我了解,这些压缩级别比 Rack::Deflater 的压缩级别更高,后者仅适用于机架文件中的 serve_static_assets 而不适用于 config.中间件. 一个不太理想的解决方案可能是更改 Zlib 的默认压缩级别,这是 Rack::Deflater 引用的内容.它应该只需要 ..
发布时间:2021-11-30 11:57:39 其他开发

在开发中禁用链轮资产缓存

我正在使用 Rails 3.2.13 和 Rails Asset Pipeline.我想使用资产管道,以便我可以对我的资产使用 SASS、CoffeeScript 和 ERB,并让管道自动编译它们,因此我无法在开发中关闭管道.我从来没有在开发中预编译资产,甚至没有 public/assets/ 目录. 但是,当我对包含的文件进行更改时,例如对包含(渲染)在 layout.html.erb_p ..
发布时间:2021-11-30 11:50:01 其他开发

如何在 Apache 下使用Passenger 设置Sinatra 应用程序?

假设我有最简单的单文件 Sinatra 应用程序.他们主页上的 hello world 就可以了.我想在 Apache 下使用 Phusion Passenger(又名 mod_rails)运行它. 我需要什么目录结构? 我必须在 vhost conf 文件中放入什么? 我知道我需要一个rackup 文件.里面有什么,为什么? 解决方案 基本目录结构: 应用程序|-- conf ..
发布时间:2021-11-11 05:53:26 服务器开发

如何在 Rack::MockRequest 中指定协议是 https?

我想在使用 Rack::MockRequest 发出请求时将协议设置为 https client = Rack::MockRequest.new(@app)#有这样的吗?env = @app.env.merge("rack.url_scheme" => "https")response = client.get("/", env) 我该怎么做? 这里是 Rack 文档. 解决方案 ..
发布时间:2021-07-02 18:48:10 其他开发

如果不是模式,机架重写删除斜杠

我在我的应用程序中使用 rack-rewrite 来删除尾部斜杠(如果发现),但是如果不在某条路线上,我只想要那个. 我使用过类似的东西: 使用 Rack::Rewrite 做r301 %r{^(?!testroute)(.+)/$}, '$1'结尾 为了实现我所需要的(例如,除 /testroute/ 之外的所有路由都应该删除任何尾部斜杠).问题是,即使它到达了该特定路线,它也不会忽略 ..
发布时间:2021-07-02 18:48:08 其他开发