如何更改Rails 4.2开发服务器的默认绑定IP?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (68)

在将我们的团队的Rails应用程序升级到4.2之后,如发布说明所述,默认的ip rails server绑定将更改为localhostfrom 0.0.0.0

我们使用Vagrant进行开发,并希望开发服务器可以通过主机上的浏览器直接访问。

rails s -b 0.0.0.0从现在开始,我不知道是否每次都打字,但是我想知道是否还有更好的解决方案,这样我们仍然可以像rails s启动服务器一样简单地使用。也许:

  • 一个配置文件rails s读取我可以修改默认绑定IP的位置(不使用-c
  • 端口与流浪前进(尝试但失败,看到下面遇到的问题)
  • 一个猴子补丁架,即改变默认绑定ip

这背后的真正目标是我希望升级能够在我们团队中顺利进行,避免由于缺少-b 0.0.0.0部分而导致人们不得不不断重启他们的Rails服务器的问题。

我尝试了无用的端口转发,但是Connection Refused当我localhost:3000在主机上访问时仍然可以获得。我尝试的两条配置线是:

config.vm.network "forwarded_port", guest: 3000, host: 3000
config.vm.network "forwarded_port", guest: 3000, guest_ip: '127.0.0.1', host: 3000

在官方文档中找不到任何相关说明。

提问于
用户回答回答于

只需将此代码附加到config/boot.rb中,

require 'rails/commands/server'
module Rails
  class Server
    def default_options
      super.merge(Host:  '0.0.0.0', Port: 3000)
    end
  end
end
用户回答回答于

可以使用领班Procfile与自定义命令一起运行:

# Procfile in Rails application root
web:     bundle exec rails s -b 0.0.0.0

现在开始你的Rails应用程序:

foreman start

工头的好处是可以将其他应用程序添加到Procfile(如sidekiq,mailcatcher)。

领班不好的一面是你必须训练你的队伍运行foreman start而不是运行rails s

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动