Приложение RoR работает на беспородной разработке, но не на производстве

Это мой первый удар по Ruby on Rails. Только что развернул очень простое приложение на Heroku.

Дело в том, что мое приложение безупречно работает на беспородной разработке; Однако когда я запускаю его с помощью «mongrel_rails start -e production», я получаю сообщение об ошибке «К сожалению, что-то пошло не так».

Да хоть убей, я не мог это отладить. Журналы Heroku ничего не возвращают, надстройка Exceptional в Heroku ничего не возвращает, и я не могу найти mongrel.log на моем компьютере с Windows (когда я запускаю mongrel, используя: mongrel_rails start -e production -d "

Я использую Rails 2.3.5 и sqlite3 с упаковщиком для упаковки своих драгоценных камней.

Мне сказали, что, вероятно, рельсы не загружаются правильно. Я не могу найти другого способа диагностировать это. Любые идеи?

Спасибо,
ANaimi


person ANaimi    schedule 30.01.2010    source источник


Ответы (3)


Взгляните на свой файл log / production.log. Он должен содержать подробную информацию о том, что происходит. Обычно он содержит строку, в которой указывается имя драгоценного камня, который необходимо установить.

Heroku не использует mongrel, поэтому я предполагаю, что это то, что вы пытаетесь сделать, чтобы выяснить, почему он не работает, когда вы нажимаете его на heroku.

Я обнаружил, что в большинстве случаев мои проблемы с heroku были из-за неустановленных драгоценных камней. Убедитесь, что вы создали манифест гема.

person Tim Sullivan    schedule 30.01.2010
comment
log / production.log пуст. Приложение также не работает на моем компьютере в процессе производства (так что, вероятно, это не проблема heroku.) Я использую упаковщик, который, как я полагал, является лучшей альтернативой манифесту gem - я ошибаюсь? Спасибо за быстрый ответ. - person ANaimi; 30.01.2010
comment
Heroku работает с драгоценными камнями отдельно от вашего проекта или локальной машины. Он устанавливает их в вашу учетную запись исключительно на основе содержимого манифеста. Что происходит, когда вы запускаете script/server -e production? - person Tim Sullivan; 30.01.2010

Попробуйте отслеживать журналы при загрузке. С терминала в каталоге журнала выполните: tail -f * .log, а затем запустите приложение с другого терминала (вероятно, это development.log, поскольку вы, вероятно, работаете в режиме разработки).

person Dave Sims    schedule 30.01.2010
comment
О, также может быть, что ваша производственная база данных не содержит того, что вам нужно (может быть, она пуста!). Я полностью совершил эту ошибку при первом развертывании. - person jefflunt; 11.03.2010

Не уверен, что на этот вопрос был дан окончательный ответ, однако проверьте папку «% app_root% / config / environments /» и сравните «development.rb» с «production.rb».

Убедитесь, что у вас есть все необходимые настройки в файле production.rb - возможно, там пропустили что-то важное.

person jefflunt    schedule 11.03.2010