我遵循PeepCode的第一个Ruby on Rails 3教程,大约27-29分钟后,他们让我们启动Rails服务器。据我所知,我已经成功安装了Rails(和Ruby)。
当我运行命令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
并且它不返回提示符,表明它正在运行。而且,对我来说(和视频相比),这看起来是一个成功的消息。
然而,当我按照视频的指示浏览到URL http://0.0.0.0:3000
时,我得到一个错误(而视频打开到Ruby的默认索引页)。我得到的错误是:
Error 108 (net::ERR_ADDRESS_INVALID): Unknown error.
因为我使用的是谷歌浏览器,它也说:
http://0.0.0.0:3000/的网页可能暂时无法访问或已永久移动到新网址。
所以,我想知道如何解决这个问题?
0.0.0.0是Webrick绑定的ip地址。它的意思是"监听所有接口"。换句话说,您可以从内部地址(localhost或127.0.0.1)以及网络上的外部地址(192.168.1)连接到这个应用程序。X或10.0.10。X或域名,该域名解析为该计算机在网络上的地址)。服务器不关心请求来自哪里。
然而,如果你用'-b'或'——binding'选项启动rails服务器,并告诉服务器绑定到127.0.0.1,服务器将不会响应外部接口的请求。您仍然可以使用127.0.0.1或localhost,但您无法使用本地或其他机器的外部ip地址连接到此服务器。
在我的Linux系统上访问http://0.0.0.0:3000是有效的,而且很有可能你正在观看的屏幕录制是用mac进行的。我猜Windows不支持0.0.0.0。
如果您在机器上,请使用localhost;如果您从另一台机器访问机器,请使用机器的ip地址。这就是我所做的,即使我运行的机器可以理解0.0.0.0。
您可以使用以下命令启动服务器:
rails server -b localhost
但是作为一个懒惰的打字员,在我的.bash_aliases
中,我有这个别名
alias rs='r s -b localhost'
使用别名,我可以用以下命令启动服务器:
rs