我正在关注 first Ruby on Rails 3 tutorial来自 PeepCode在大约 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.
由于我使用的是 Google Chrome,它还显示:
The webpage at http://0.0.0.0:3000/ might be temporarily down or it may have moved permanently to a new web address.
所以,我想知道如何解决这个问题?
最佳答案
0.0.0.0 是 Webrick 绑定(bind)的 IP 地址。它的意思是“监听所有接口(interface)”。换句话说,您可以从内部地址(localhost 或 127.0.0.1)以及网络上的外部地址(192.168.1.x 或 10.0.10.x 或解析为地址这台机器在网络上)。服务器不关心请求来自哪里。
但是,如果您使用“-b”或“--binding”选项启动 rails 服务器并告诉服务器绑定(bind)到 127.0.0.1,服务器将不会响应对外部接口(interface)的请求。您仍然可以使用 127.0.0.1 或 localhost,但您无法在本地或从另一台机器使用它的外部 IP 地址连接到此服务器。
转到 http://0.0.0.0:3000 可以在我的 Linux 系统上运行,很可能您正在观看的截屏视频使用的是 mac,它也可以运行。我的猜测是 Windows 不支持 0.0.0.0。
如果您在盒子上,只需使用本地主机;如果您从另一台机器访问它,则使用盒子的 IP 地址。这就是我所做的,即使我正在运行一台理解 0.0.0.0 的机器。
关于ruby-on-rails - Rails 服务器不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8365097/