8

我正在关注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/的网页可能暂时关闭,或者它可能已永久移动到新网址。

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

4

2 回答 2

13

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 地址连接到该服务器。

转到 http://0.0.0.0:3000 可以在我的 Linux 系统上运行,并且很可能您正在观看的截屏视频使用的 mac 也可以。我的猜测是 Windows 不支持 0.0.0.0 。

如果您在盒子上,只需使用 localhost;如果您从另一台机器访问它,则使用盒子的 ip 地址。这就是我所做的,即使我运行的是一台理解 0.0.0.0 的机器。

于 2011-12-03T06:18:47.143 回答
3

您可以使用以下命令启动服务器:

rails server -b localhost

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

alias rs='r s -b localhost'

使用别名,我可以启动服务器:

rs
于 2011-12-03T14:16:32.563 回答