Rails 4.2.0.beta2 - 无法连接到LocalHost?

时间:2014-10-26 06:59:48

标签: ruby-on-rails ruby ruby-on-rails-4 railstutorial.org ruby-on-rails-4.2

我按照RailsTutorial.org第3版(刚出来的那个)中的说明安装了Rails 4.2.0.beta2。我没有使用cloudIDE,而是在带有RVM的Windows 7主机上通过Vagrant使用Ubuntu Trusty 32。

rails _4.2.0.beta2_ new hello_app然后粘贴在his gemfile sample

之后,我跑了:

$ bundle install
$ rails s

服务器启动正常,但是当我尝试连接到localhost:3000时,我收到“未找到服务器”

Weirder仍然,我还有其他几个Rails启动项目,我一直在修改使用Rails 4.0.3和4.1.6,我能够很好地连接到服务器。

我在这里缺少什么?当我使用最新版本创建新的Rails项目时,为什么我的浏览器无法连接,但它适用于旧版本?

此外,我尝试了wget http://0.0.0.0:3000,当它连接并收到200响应时,长度未指定,而在旧版本下的另一个全新的Rails应用程序中,我将得到任何{{的实际文件大小1}}是。

4 个答案:

答案 0 :(得分:17)

关于无法访问的服务器,来自Rails 4.2 release notes

  

3.3 rails服务器的默认主机

     

由于Rack的更改,rails服务器现在默认侦听localhost而不是0.0.0.0。这应该对标准开发工作流程的影响最小,因为http://127.0.0.1:3000http://localhost:3000将继续像以前一样在您自己的计算机上工作。

     

但是,通过此更改,您将无法再从其他计算机访问Rails服务器(例如,您的开发环境位于虚拟机中,并且您希望从主机访问它),您需要使用rails server -b 0.0.0.0启动服务器以恢复旧行为。

     

如果这样做,请确保正确配置防火墙,以便只有网络上的受信任计算机才能访问您的开发服务器。

127.0.0.1:3000只允许来自端口3000上该地址的连接,而0.0.0.0:3000将允许来自端口3000的任何地址的连接。

由于Rails 4.2默认只接受来自localhost的连接,因此您只能从localhost访问服务器(例如,在VM内部);来自另一台机器(例如VM主机)的连接将不起作用。

你必须使用"旧行为"上述方法允许来自VM主机的连接。


关于未指定的内容长度,这取决于正在使用的Web服务器。我假设它使用的是不发送内容长度的分块编码。资产将具有内容长度,但不包含HTML。

答案 1 :(得分:4)

默认情况下,Rails 4.2绑定到127.0.0.1:3000,而不是早期版本中的0.0.0.0:3000。如果您有其他Rails项目使用您的配置,请尝试使用显式主机启动服务器:rails s -b 0.0.0.0

答案 2 :(得分:3)

名为tostasqb的人在github上发布了一个非常有趣的解决方法,以使旧行为(Rails版本< 4.2)成为默认行为。

只需编辑config / boot.rb文件并添加以下行:

require 'rubygems'
require 'rails/commands/server'

module Rails
  class Server
    alias :default_options_alias :default_options
    def default_options
      default_options_alias.merge!(:Host => '0.0.0.0')
    end
  end
end

答案 3 :(得分:0)

将gemfile修改为类似的内容并运行bundle update。您指定的版本是明确的。如果我没有粘贴你的gemfile,那么新的hello_world对我有用。

gem 'rails', '~> 4.2.0.beta2'
gem 'pg'
gem 'bootstrap-sass', '~> 3.2.0'
gem 'sass-rails', '~> 5.0.0.beta1'
gem 'font-awesome-sass', '~> 4.2.0'
gem 'sprockets-rails', '~> 3.0.0.beta1'
gem 'coffee-rails', '~> 4.0.0'
gem 'uglifier', '>= 1.0.3'
相关问题