- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已将 Puma 添加到我的 sinatra 应用程序中,现在我在终端中获得两行请求输出。我已经检查过,它实际上并没有两次调用代码,而且我猜想可能 Puma 正在与 Sinatra 一起输出请求信息。
作为演示,我创建了一个简单的应用程序,如下所示:
Gemfile
source 'https://rubygems.org'
ruby '2.2.0'
gem 'sinatra'
gem 'puma'
require 'sinatra'
get '/' do
'Hello World'
end
run Sinatra::Application
rackup -s puma
R5001755:test louis.sayers$ rackup -s puma
Puma 2.11.3 starting...
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://localhost:9292
::1 - - [03/Jul/2015:21:46:37 +1000] "GET / HTTP/1.1" 200 11 0.0074
::1 - - [03/Jul/2015:21:46:37 +1000] "GET / HTTP/1.1" 200 11 0.0222
最佳答案
这是由 CommonLogger
middleware 引起的.它是由 Rack (when using rackup
) 添加的来自 Sinatra (when logging is enabled) ,导致重复输出。 Sinatra 实际上使用了一个 custom subclass of this middleware尝试解决这个问题。为了让它工作,它修补了原来的 CommonLogger
类(class)。
出现这个问题是因为 Puma 也defines its own version of CommonLogger
其中不包括 Sinatra 引入的更改。在 Sinatra 之后加载 Puma 时,Puma 版本会覆盖修补版本,因此会发生原始行为(重复的输出行)。
有几种方法可以解决此问题。您可以在 Sinatra 中禁用日志记录以防止添加重复的中间件。 Sinatra 日志记录设置适用于 CommonLogger
和 Logger
中间件(这是 logger
helper 使用的),因此您可能需要添加 Logger
自己的中间件:
disable :logging
use Rack::Logger
rackup
从添加
CommonLogger
中间件使用
-q
rackup
的选项命令:
$ rackup -q -s puma
CommonLogger
时它正在修补 Puma 版本,以后不会覆盖该修补程序。您可以使用
-r
来做到这一点。选项
rackup
强制它加载 Puma:
$ rackup -s puma -r puma
关于logging - Sinatra with Puma 在终端中提供两倍的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31206060/
puma-dev 无法启动并因错误而失败: unexpected exit: bash: line 23: exec: puma: not found puma-dev 没有看到我安装了 pu
我一直在从多个来源复制和粘贴以下 puma 系统启动脚本的片段,但它不起作用。系统是Debian 9.6,用户rails通过 rvm 安装了 ruby .用户 rails可以启动命令RAILS_ENV
我使用 ansible 脚本来设置服务器: playbook.yml Gemfile 当我将我的应用程序部署到服务器时,我在 nginx/error.log 中看到了这个: 2016/09/30 20
面临的问题 当我运行 bundle exec cap production puma:start 时,我得到 Puma 已成功启动的响应: DEBUG [e4382d1e] * Pruning
一些指南 ( example ) 推荐这个来启动自己的网络服务器 bundle exec rails server puma 但我总是用 puma 启动服务器直接地 bundle exec puma
在努力让一个新项目工作后,我发现由于某种原因我无法启动我的 rails 服务器。我不断收到以下错误:HTTP parse error, malformed request: # 最佳答案 我能够通过清
我正在使用 Capistrano 将我的 Rails 5 应用程序部署到 AWS EC2 实例。当我输入: cap production deploy 一切顺利,部署成功。但是,重启puma的过程不起
我可以使用 rails s puma 在 rails 中运行 puma 服务器或只是 puma . 根据 this answer , 正在运行 rails s puma使服务器了解 rails 环境。
我正在使用 puma 和 nginx 在 digital ocean 上设置我的 Rails 生产服务器。 按照教程,我在/etc/nginx/sites-available/default 中输入了
我已经为本教程设置了我的服务器 ( https://coderwall.com/p/ttrhow/deploying-rails-app-using-nginx-puma-and-capistrano
我继承了一个代码库,其中的测试已经放弃了一年多一点。我正在尝试尽可能多地清理测试套件,但我很难梳理我的集成测试 1. Capybara 2. Puma, 3. Selenium, 4. 使用 rail
在 Ubuntu 14.04 上,我为 puma 设置了这个简单的 upstart 脚本: /etc/init/puma.conf start on (local-filesystems and ne
这个问题在这里已经有了答案: puma gem - Failed to build gem native extension (13 个回答) 去年关闭。 无法在 macos-10.15.6 上 bu
配置中没有明确的选项——我怎么知道我的 Puma 实例是否在集群模式下运行? 最佳答案 如果 Puma 在集群模式下运行,你应该看到 [12345] Puma starting in cluster
当将 MRI Ruby 2.1.2 与 Puma 一起使用时(假设 1 个 worker 有 8 个线程),GC 何时运行?它是在所有这些线程都空闲时由父工作进程运行,还是由父进程根据需要运行,即使这
我正在运行 Puma 2.8.2 服务器来 stub 我的一些后端服务。有时 Puma 服务器会无缘无故地死掉。 error.log 中没有错误,下面是 access.log 的摘录: 10.210.
我一直在使用 Thin 来运行我的 ruby Sinatra 应用程序,但我现在切换到 Puma。 Thin 创建了我自己使用的日志 log/thin.log。我注意到 Puma 没有生成日志文件
我可以使用以下命令启动 Puma: $HOME/.rbenv/bin/rbenv exec bundle exec puma -C/home/deploy/tasks/shared/puma.rb -
我已将 Puma 添加到我的 sinatra 应用程序中,现在我在终端中获得两行请求输出。我已经检查过,它实际上并没有两次调用代码,而且我猜想可能 Puma 正在与 Sinatra 一起输出请求信息。
我了解 Puma 相对于其他 Rails Web 服务器的优势在于它处理慢速客户端的方式。当 Puma 服务器接收并下载一个(可能很慢的)请求时,它仍然可以接收和下载其他可能下载速度更快的请求,并在慢
我是一名优秀的程序员,十分优秀!