Сервер Rails не работает?

Я следую за первым учебником по Ruby on Rails 3 от 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, он также говорит:

Возможно, веб-страница по адресу http://0.0.0.0:3000/ временно не работает или она постоянно перемещена на новый веб-адрес.

Итак, мне было интересно, как это исправить?

2 ответа

Решение

0.0.0.0 - это IP-адрес, к которому привязан Вебрик. Это означает "слушать на всех интерфейсах". Другими словами, вы можете подключиться к этому приложению с внутреннего адреса (localhost или 127.0.0.1), а также с внешнего адреса в сети (192.168.1.x или 10.0.10.x или доменного имени, которое разрешается в адрес этой машины есть в сети). Серверу все равно, откуда поступил запрос.

Однако, если вы запустили сервер rails с параметром -b или --binding и указали серверу привязаться к 127.0.0.1, сервер не будет отвечать на запросы к внешнему интерфейсу. Вы все еще можете использовать 127.0.0.1 или localhost, но не можете подключиться к этому серверу, используя его внешний IP-адрес локально или с другого компьютера.

Переход на http:// 0.0.0.0:3000 работает в моей системе Linux, и, скорее всего, вы смотрели скринкаст с использованием Mac, который также работал. Я предполагаю, что 0.0.0.0 не поддерживается в Windows.

Просто используйте localhost, если вы находитесь на ящике, или IP-адрес ящика, если вы обращаетесь к нему с другого компьютера. Это то, что я делаю, даже когда я работаю на машине, которая понимает 0.0.0.0.

Вы можете запустить сервер с помощью этой команды:

rails server -b localhost

Но как ленивая машинистка, по моему .bash_aliasesУ меня есть этот псевдоним

alias rs='r s -b localhost'

С помощью псевдонима я могу запустить сервер просто:

rs
Другие вопросы по тегам