Rails 4.2.0.beta2 – 无法连接到LocalHost?
我按照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
服务器启动正常,但是当我尝试连接到localhost:3000
我得到“找不到服务器”
Weirder仍然,我有一些其他Rails启动项目我一直在修补使用Rails 4.0.3和4.1.6,我能够连接到那里的服务器就好了。
我在这里想念的是什么? 当我使用最新版本创建新的Rails项目时,为什么我的浏览器无法连接,但它适用于旧版本?
另外,我尝试了wget http://0.0.0.0:3000
,当它连接并收到200响应时,长度未指定,而在旧版本下的另一个全新的Rails应用程序,我会得到实际的文件大小index.html
是。
关于无法访问的服务器,从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。
默认情况下,Rails 4.2绑定到127.0.0.1:3000
,而不是早期版本中的0.0.0.0:3000
。 如果您有其他Rails项目使用您的配置,请尝试使用显式主机启动服务器: rails s -b 0.0.0.0
。
一个名为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
将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'
- 关闭浏览器时会话未被破坏 – RailsTutorial.org
- Hartl对config.serve_static_files的sample_app警告,并且已经定义了测试
- 在Rails 4.0上安装Ruby时出错 – atomic_reference.c错误71
- 在Hartl的rails教程的步骤5.1.2中,bootstrap-sass gem破坏了我的轨道3.2.3
- 为什么carrierwave导致NameError:未初始化的常量Micropost :: PictureUploader错误?
- Ruby(on Rails)语法
- Rails教程sample_app在Heroku中失败,带有log:ActionController :: RoutingError(没有路由匹配“/ about”):
- Ruby on Rails Michael Hartl第8.5章测试失败
- 在我的路线上出现一个奇怪的错误,“缺少必需的钥匙”栏杆4