我正在使用railstutorial.org学习Ruby on Rails 我已经设置了所有内容,并且从第1章开始工作正常。但是,我的下一个应用程序突然出现问题。
我运行“rails server”
=> Booting WEBrick
=> Rails 3.2.9 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-11-15 00:45:08] INFO WEBrick 1.3.1
[2012-11-15 00:45:08] INFO ruby 1.9.3 (2012-11-10) [x86_64-linux]
[2012-11-15 00:45:08] INFO WEBrick::HTTPServer#start: pid=2752 port=3000
似乎工作正常,就像我以前的应用程序一样。
但是,我尝试在各种浏览器上连接到localhost:3000,0.0.0.0:3000,127.0.0.1:3000并且它们都无法建立与服务器的连接。
有些注意事项:
- 我刚刚能够连接到localhost - 它似乎突然停止了工作。
- 我的第一个应用程序工作得非常好,但现在它对我的第一个应用程序也不起作用。
- 我没有阻止端口的防火墙,我的主机文件不是问题。
- 我在Ubuntu 12.10
我几乎总能通过搜索找到解决方案,但不是这次..所以我需要一些帮助。这是非常令人沮丧的,因为我觉得这是一个简单的问题,我花了太长时间被困住。
谢谢。
答案 0 :(得分:14)
使用rails 4.2.0,服务器默认绑定到localhost
,而不是0.0.0.0
。在虚拟盒中使用rails时,从主机访问服务器时,绑定地址必须为0.0.0.0
使用-b0.0.0.0
启动rails服务器,以便从主机/浏览器访问rails服务器。
http://guides.rubyonrails.org/4_2_release_notes.html#default-host-for-rails-server https://github.com/samuelkadolph/unicorn-rails/issues/12#issuecomment-60875268
答案 1 :(得分:13)
尝试在3001之类的其他端口中运行它:
rails server -p 3001
如果它的工作比在3000上面再次尝试它作为上面的命令
我的其他一些软件正在使用你的3000端口,这就是它没有响应的原因
或者对于某些高级内容,请参阅here
答案 2 :(得分:7)
确保在启动rails之前运行rake db:create
。
答案 3 :(得分:5)
我正在使用rails 5.0.0.beta3并遇到了这个问题。 @ andrewleung的回答对我很有帮助。
似乎Rails默认绑定地址在我的计算机上搞砸了(Mac OS 10.11.6);在其他一些方面,它运作正常。
简单的解决方案就是使用rails server -b127.0.0.1
。然后,您可以访问localhost:3000
。
我的猜测是(从https://serverfault.com/a/544188暗示)我的计算机上的localhost绑定搞砸了,而127.0.0.1更具体。
答案 4 :(得分:1)
我遇到了同样的问题,我意识到它位于config/environment/production.rb
文件中,config.assets.compile = false
必须更改为config.assets.compile = true
但是,这可能会导致某些javascript和sass元素无法正常工作
答案 5 :(得分:0)
原来我遇到的问题是我的虚拟机已经耗尽了硬盘空间,而且还没有足够的空间来创建server.pid文件。但是出于某种原因,它并没有因为文件被创建而引发错误,但却被留空了。
答案 6 :(得分:0)
我遇到了同样的问题。事实证明,浏览器同步也在localhost:3000上运行。
由于一些Rails开发人员会使用浏览器同步来快速测试前端脚本,我认为这可能是使用端口3000的一个流行原因。
答案 7 :(得分:0)
检查你的/ etc / hosts文件..是ip 0.0.0.0还是指向其他地址的localhost。
答案 8 :(得分:0)
对我来说...我在工作中担任代理人,不得不做rails s -b 0.0.0.0 -p 3000