问题标签 [rack-middleware]
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.
ruby-on-rails - 在 Ruby on Rails 的上下文中引用时,什么是中间件?
我经常在 Ruby on Rails 的上下文中听到“中间件”这个词。它到底是什么?你能提供具体的例子吗?
ruby-on-rails - Rails 2.3.8 上的 PDFKit 中间件问题
我已经在我的 Ubuntu 8.04 服务器上安装了 PDFKit 和 wkhtmltopdf。我正在尝试在我的 Rails 2.3.8 应用程序中使用 PDFKit 作为中间件,并将以下几行添加到 environment.rb (如 jdpace pdfkit 页面上的指示):
需要'pdfkit' config.middleware.use PDFKit::Middleware
我的 Mongrel 似乎已启动,但只要我请求一个页面,Mongrel 日志中就会出现以下错误:
** 将 PID 文件写入 tmp/pids/mongrel.9270.pid /!\ FAILSAFE /!\ Tue Sep 07 16:42:20 +0000 2010 状态:500 Internal Server Error undefined method match' for nil:NilClass
/usr/lib/ruby/gems/1.8/gems/pdfkit-0.4.6/lib/pdfkit/middleware.rb:12:in
call' /home/rails/livetest- carbon-hub/releases/20100907133547/vendor/rails/actionpack/lib/action_controller/string_coercion.rb:25:in call'
/usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/head.rb:9:in
call' /usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/ methodoverride.rb:24:in `call'
有没有其他人遇到过这个?
感谢您收到任何帮助或建议!
ruby-on-rails-3 - 带有rails 3的Hello World机架中间件:如何处理所有请求的主体
我想尝试一个简单的机架中间件“hello world”,但我似乎卡住了。看起来主语法发生了变化,因为一些示例使用以下代码:
产生错误:
即使我查看那里的其他代码,我似乎也无法让它们与 rails 3.0.3 一起运行。
这是我的具体问题:
- 如何获得一个简单的机架中间件来运行和修改 Rails 应用程序的任何输出的主体?
- 我应该把 Rails.application.config.middleware.use 声明放在哪里?(为此,我在 config/initializers 中创建了一个自己的初始化程序)
提前非常感谢!
ruby-on-rails-3 - 如何访问 ExceptionNotifier 变量
如何访问 ExceptionNotifier 变量,例如自定义邮件程序类sender_address
或exception_recipients
在我的自定义邮件程序类中?由于 ExceptionNotifier 是作为 Rack 中间件实现的,我不知道该怎么做。
ruby-on-rails - 在为 Rails 应用程序编写 Rack 中间件时,我有哪些存储选项?
假设我的 Rack 中间件是专门为 Rails 应用程序设计的,我有哪些存储选项?例如,有没有办法让我读取/写入 Rails 缓存?
ruby-on-rails - 为某些操作禁用 Rails 中间件,但不是全部
对于某些请求,ActionDispatch::ParamsParser 似乎很慢,特别是当有一个很大的 JSON 请求体时。我想为这些请求禁用它,但对于我的大多数应用程序来说,它工作得很好。有没有一种方便的方法可以在不完全从中间件堆栈中删除的情况下为某些操作禁用 ParamsParser?这是使用 Rails 3.0.9。
ruby-on-rails - Sinatra 机架中间件劫持 '/' 根 url
我正在尝试在我的 Rails 应用程序中使用 Sinatra 应用程序作为中间件。
我已经/lib
在 Rails 应用程序的文件夹中测试了一个基本的 Sinatra 应用程序,use
d 中间件并设置了路由。那工作得很好。
我想要做的是提取 Sinatra 应用程序并将其作为 gem 包含在内。这样我就可以独立运行 Sinatra 应用程序,或者在多个 Rails 应用程序中使用它。
Sinatra 应用程序
Myrackapp
还有一个gemspec
——那里没什么有趣的,但如果有必要我可以发帖。
Rails 应用程序
-
-
这是我的rake middleware
输出:
当我去http://myapp.dev/rackapp
我得到Myrackapp
的根路径 - 正确的行为
当我去http://myapp.dev/rackapp/rackroute
我得到Myrackapp
的/rackroute
路径 - 再次,正确的行为
问题
当我进入http://myapp.dev
浏览器时,我会被定向到Myrackapp
的根路径。
当我将 Sinatra 应用程序直接包含在我的 Rails 应用程序中时,访问http://myapp.dev
呈现了正确的pages#show
操作。
我该怎么做才能让 Sinatra 应用程序不劫持 Rails 的根路径?
ruby - 路由中间件导致的错误?
我有一个使用公寓 gem的应用程序,我试图将由(公寓)中间件引起的错误路由到特定页面,但我不知道如何解决这个问题。我尝试将其放入控制器中,但没有帮助,因为它在中间件层引发了错误。将它放入路由也没有帮助,因为公寓中间件在路由之前执行。
ruby-on-rails - 在 Heroku 上使用 Rails 3.2.3 进行机架重写
我正在尝试在 Heroku cedar 堆栈上为 Rails 3.2.3 设置 rack-rewrite,并且在我看到的任何地方都说要添加如下内容:
但是尝试在 Heroku 上运行它会给我错误:
并且确实运行“heroku rake 中间件”并没有在列表中显示 Rack::Lock 在开发中 Rack::Lock 存在。
第一个问题是为什么 Heroku 上没有 Rack::Lock,对吗?第二个问题,如果不是在 Rack::Lock 之前,我应该在哪里插入 Rack::Rewrite?
谢谢!