2011-12-03 46 views
8

Tôi đang theo dõi first Ruby on Rails 3 tutorial từ PeepCode và khoảng 27-29 phút nữa, chúng tôi đã bắt đầu máy chủ Rails. Theo hiểu biết tốt nhất của tôi, tôi đã cài đặt Rails (và Ruby) thành công.Máy chủ Rails không hoạt động?

Khi tôi chạy lệnh rails server (từ Windows 7 Command Prompt theo các hướng dẫn của video), tôi nhận được thông báo:

=> 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 

Và nó không trở về dấu nhắc, chỉ ra rằng nó là đang chạy. Ngoài ra, với tôi (và so sánh với video), điều này giống như một thông điệp thành công.

Tuy nhiên, khi tôi duyệt đến URL, http://0.0.0.0:3000, theo chỉ dẫn của video, tôi gặp lỗi (trong khi video mở ra trang chỉ mục mặc định cho Ruby). Các lỗi tôi nhận được là:

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

Kể từ khi tôi đang sử dụng Google Chrome, nó cũng nói:

Trang web tại http://0.0.0.0:3000/ có thể tạm thời hoặc nó có thể đã chuyển hẳn sang địa chỉ web mới .

Vì vậy, tôi đã tự hỏi làm thế nào để sửa lỗi này?

+11

vì bạn đang ở trên cửa sổ, hãy thử 127.0.0.1:3000 hoặc http: // localhost: 3000 –

+0

@ JesseWolgamott Tôi đã thử điều đó và nó hoạt động. Cảm ơn bạn! – Bhaxy

+3

Đó không phải là sindows;) cụ thể. 127.0.0.1 là máy chủ cục bộ bất kể OS –

Trả lời

12

0.0.0.0 là địa chỉ ip mà Webrick đang ràng buộc. Nó có nghĩa là 'lắng nghe trên tất cả các giao diện'. Nói cách khác, bạn có thể kết nối với ứng dụng này từ địa chỉ nội bộ (localhost hoặc 127.0.0.1) cũng như địa chỉ bên ngoài trên mạng (192.168.1.x hoặc 10.0.10.x hoặc tên miền để giải quyết một địa chỉ máy này có trên mạng). Máy chủ không quan tâm đến yêu cầu đến từ đâu.

Nếu, tuy nhiên, bạn đã khởi động máy chủ với tùy chọn '-b' hoặc '--binding' và yêu cầu máy chủ liên kết với 127.0.0.1, máy chủ sẽ không phản hồi các yêu cầu đối với giao diện bên ngoài. Bạn vẫn có thể sử dụng 127.0.0.1 hoặc localhost nhưng bạn không thể kết nối với máy chủ này bằng địa chỉ IP bên ngoài cục bộ hoặc từ một máy khác.

Đi tới http: // 0.0.0.0:3000 hoạt động trên hệ thống Linux của tôi và rất có thể màn hình bạn đang xem đang sử dụng máy mac cũng sẽ hoạt động. Tôi đoán là 0.0.0.0 không được hỗ trợ trên Windows.

Chỉ cần sử dụng localhost nếu bạn đang ở trên hộp hoặc địa chỉ ip của hộp nếu bạn đang truy cập nó từ một máy khác. Đó là những gì tôi làm, ngay cả khi tôi đang chạy một máy có hiểu 0.0.0.0.

3

Bạn có thể khởi động server bằng lệnh này:

rails server -b localhost 

Nhưng như một typist lười biếng, trong .bash_aliases tôi, tôi có bí danh này

alias rs='r s -b localhost' 

Với bí danh, tôi có thể bắt đầu các máy chủ chỉ với:

rs 
+0

Chỉ cần làm rõ, ràng buộc với localhost có nghĩa là bạn chỉ có thể truy cập trang web từ máy cục bộ. Nếu bạn đang làm một hướng dẫn, hoặc bạn không muốn người khác có thể đánh trang web của bạn, đây là những gì bạn muốn. Nếu không, chỉ cần để ràng buộc mặc định và sử dụng http: // localhost: 3000 để truy cập ứng dụng của bạn. –

Các vấn đề liên quan