2015-03-20 3 views
0

Приложение My Rails 4 работает в режиме разработки, но на производстве я вижу только пустую страницу.Приложение Rails работает в разработке, но пуста в производстве

Он работает с единорогом с Nginx в CentOS 7 VPS.

Подсказка: что мне нужно?

unicorn_rails -c config/unicorn.rb -D 

Rails development

unicorn_rails -c config/unicorn.rb -D -E production 

Rails production

бревна Nginx, Единорог и Rails не показывают каких-либо ошибок.

Rake маршруты
[корень @ mycentos my_app] # реки маршруты

Prefix Verb URI Pattern    Controller#Action 
    blogs GET /blogs(.:format)   blogs#index 
      POST /blogs(.:format)   blogs#create 
new_blog GET /blogs/new(.:format)  blogs#new 
edit_blog GET /blogs/:id/edit(.:format) blogs#edit 
    blog GET /blogs/:id(.:format)  blogs#show 
      PATCH /blogs/:id(.:format)  blogs#update 
      PUT /blogs/:id(.:format)  blogs#update 
      DELETE /blogs/:id(.:format)  blogs#destroy 

В развитии я могу получить доступ обычно к любому маршруту, даже показывает мне сообщения об ошибках, когда маршрут не существовать. Но в производстве всегда пусто. Works well in development - always blank in production

+0

Каков результат или ошибка при запуске маршрутов рейка на производственном сервере? – Elvn

+0

И вы запустили $ rake assets: precompile RAILS_ENV = создание до загрузки и развертывания – Elvn

+0

Нет. Я не запускал его раньше. Приложение создается в том же VPS, но не загружается. –

ответ

1

После многозначительного исследования проблема заключалась в том, что для производства не было секретного ключа. Поэтому мне пришлось сгенерировать его с помощью rake secret и вставить его в config/secrets.yml.

+0

О, мой. Я рад, что вы это нашли. Как вы отследили его? Появилась подсказка в журналах? Что-то другое? – Elvn

+0

@Valerie, журнал Rails никогда не давал мне подсказки, даже журнал из Nginx или Unicorn. Это было просто удачей найти решение. Большое спасибо за ваше время! –

1

Я не так смело переключаюсь на область ответа здесь, но пришло время. Я знаю, что node.js можно использовать для создания одностраничного приложения в Rails. Это то, что я хочу попробовать, но еще не сделал.

Перед тем, как погрузиться в сценарий изоляции и завоевания, вы просмотрели свой производственный журнал. Вероятно, это будет сложено с ошибками. Они что-нибудь говорят?

Я подхожу к этому, не зная точно, в чем проблема. И я не знаю, что вы уже пробовали. Но я попытался бы изолировать проблему, удалив компоненты и сложность. Я предлагаю создать очень простую страницу «Hello world» в корне. Вот и все. Если мы сможем разрешить это и получить что-то для развертывания, то вы можете прогрессировать.

Получение «Привет, мир!» страница будет подтверждать, что ваша базовая установка и развертывание кода MVC функционирует. И вы изолируете базу данных как переменную в производстве.

Hello world! Простой тест - Я не видел приложение Rails, для которого не требовалось root_url. (Возможно node.js установки не REQ. Один? Незнайка.) В вашем routes.db добавить

root 'static_pages#home' 

загребать и убедитесь, что путь показывает вверх. Создайте home.html.erb в/статические страницы с html для «Hello World». Развертывание + тест Девы + прод используя ту же команду, которую вы использовали:

unicorn_rails -c config/unicorn.rb -D -E production 

Если работает, то вы знаете, что развернуть работы, если не работает в производстве, а затем удалить другой компонент ...

Отключайте Node.js

В вашей простой "Hello" Page мире приложение, вам не нужно Node.js.Если вы на 100% уверены, что он не может ввести проблему, тогда не обращайте внимания на этот совет.

Привет, мир, Не работает без базы данных и без node.js? Посмотрите на параметры производства, Gemfile и т. Д. При необходимости я добавлю детали здесь. Хотя я надеюсь, что проблема не в среде/production.rb ... но это может быть так.


Казалось бы, кто-то с Rails exp. на node.js было бы лучше ответить на этот вопрос, но поскольку никто больше не активизируется, я надеюсь, что мой вклад будет полезен, если только увидеть проблему по-другому.

Смежные вопросы