2011-12-03 158 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即可訪問您的應用。 –