2011-12-03 101 views
8

我正在关注first Ruby on Rails 3 tutorialPeepCode以及大约27-29分钟,他们让我们启动Rails服务器。据我所知,我已经成功安装了Rails(和Ruby)。Rails服务器不工作?

当我运行命令rails server(每视频的说明Windows 7命令提示符),我得到的消息:

=> Booting WEBrick 
=> Rails 3.1.3 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
[2011-12-02 18:37:57] INFO WEBrick 1.3.1 
[2011-12-02 18:37:57] INFO ruby 1.9.3 (2011-10-30) [i386-mingw32] 
[2011-12-02 18:37:57] INFO WEBrick::HTTPServer#start: pid=5584 port=3000 

而且它不会返回到提示符,这表明它是运行。另外,对我来说(和视频相比),这看起来像一个成功的信息。

但是,当我按照视频的指示浏览到网址http://0.0.0.0:3000时,出现错误(视频打开到Ruby的默认索引页面)。我得到的错误是:

Error 108 (net::ERR_ADDRESS_INVALID): Unknown error. 

由于我使用谷歌浏览器,它也说:

http://0.0.0.0:3000/的网页可能暂时无法连接,或者它已永久性地移动到新网址。

所以,我想知道如何解决这个问题?

+11

因为你是在Windows上,尝试127.0.0.1:3000或http://本地主机:3000 –

+0

@JesseWolgamott我尝试过,并且工作。谢谢! – Bhaxy

+3

这不是sindows;)具体。 127.0.0.1是本地主机无论操作系统 –

回答

12

0.0.0.0是Webrick绑定的IP地址。这意味着'听所有接口'。换句话说,可以从内部地址连接到该应用程序(本地主机或127.0.0.1)以及网络(为192.168.1.x或10.0.10.x或解析为一个域名上的外部地址地址本机已在网络上)。服务器不关心请求来自哪里。

但是,如果您使用'-b'或'--binding'选项启动rails服务器并且要求服务器绑定到127.0.0.1,则服务器不会响应对外部接口的请求。你仍然可以使用127.0.0.1或本地主机,但使用它的本地或从另一台机器的外部IP地址,您无法连接到该服务器。

转到http:// 0.0.0.0:3000在我的Linux系统上工作,很可能您正在看的屏幕录像是使用一个也可以工作的mac。我的猜测是,Windows不支持0.0.0.0。

只要使用本地主机,如果您在机器的盒子或IP地址,如果您从另一台机器访问它。这就是我所做的,即使我运行了一台理解为0.0.0.0的机器。

3

你可以用这个命令来启动服务器:

rails server -b localhost 

但作为一个懒惰的打字员,我.bash_aliases,我有这个别名

alias rs='r s -b localhost' 

与别名,我可以启动服务器只有:

rs 
+0

只是为了澄清,绑定到本地主机意味着您只能从本地计算机访问网站。如果你正在做一个教程,或者你不希望别人能够打你的网站,这是你想要的。否则,只需保留默认绑定并使用http:// localhost:3000即可访问您的应用。 –