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

Hal*_*int 5 ruby ruby-on-rails railstutorial.org ruby-on-rails-4 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,然后贴在他的Gemfile样品.

之后,我跑了:

$ bundle install
$ rails s
Run Code Online (Sandbox Code Playgroud)

服务器启动正常,但是当我尝试连接到" localhost:3000我找不到服务器"时

Weirder仍然,我有一些其他Rails启动项目,我一直在修补使用Rails 4.0.3和4.1.6,我能够连接到那里的服务器就好了.

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

此外,我试过wget http://0.0.0.0:3000,虽然它连接并收到200响应,长度未指定,而在旧版本下的另一个全新的Rails应用程序,我会得到实际的文件大小index.html.

Sub*_*ial 17

关于无法访问的服务器,从Rails 4.2 发行说明:

3.3 rails服务器的默认主机

由于Rack的更改,rails服务器现在侦听localhost而不是0.0.0.0默认情况.这应该有标准的开发流程既影响最小http://127.0.0.1:3000,并http://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.