1

我将首先让您知道我在编程方面是一个新手,所以如果解决方案简单明了,我深表歉意。

我在“Codeanywhere”上有一个 Ruby on Rails 应用程序,它是一个基于在线云的 IDE,我正在使用 Puma 查看开发中的服务器。通常,只需输入“Rails s”,然后单击预览按钮即可查看我正在开发的应用程序。

但是,在进行“捆绑更新”之后,这不再有效。我输入“Rails s”,它说服务器已经启动,但是当我单击预览按钮时,它说它无法连接并且没有服务器在运行。我已经缩小了范围,导致此问题的“更新”要么是 Rails gem 本身的更新,要么更可能是 Puma gem 的更新,它是控制此功能的 gem。

我试过“rails s --binding=0.0.0.0”,但也没有用,似乎只是更新破坏了它,但我需要更新,因为它是一个安全漏洞。如果我回滚更新,它可以正常工作,但我需要更新的 gem。

更新前的 Rails 版本:5.2.1 更新前的 Puma 版本:3.11

Rails 更新后版本:5.2.4 Puma 更新后版本:3.12.2

Rails S 输出为:

=> Booting Puma
=> Rails 5.2.4 application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.2 (ruby 2.5.1-p57), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
^C- Gracefully stop

一些见解将不胜感激。

4

1 回答 1

1

在更新到 Puma 3.12.2 之后,我也刚刚点击了这个(Rails 6,以防有人关心)。

回顾lib/puma/dsl.rb,我发现了 2 种方法来更改我的 Rails 应用程序config/puma.rb以指定0.0.0.0.

两个都

set_default_host '0.0.0.0'
port        ENV.fetch("PORT") { 3000 }

port        ENV.fetch("PORT") { 3000 }, '0.0.0.0'

让它打印

[...]
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop
[...]

在启动和工作/听我相应的。

于 2020-01-02T21:42:44.870 回答