Каковы различия между запуском приложения rails в разработке и запуском его в производство? [Дубликат]

Это означает, что вы пытаетесь манипулировать тем, что имеет ссылку, но еще не инициализировано. Первое, что нужно сделать, это проверить каждый созданный экземпляр. Используйте контрольные точки, часы, проверяйте свои значения varibale. Следить за трассировкой стека и искать точные строки и столбцы, которые создают проблему

11
задан SundayMonday 26 November 2011 в 20:13
поделиться

2 ответа

Приложение rails можно запустить в режиме производства rails server -e production, хотя в 99% случаев вы будете работать на чем-то вроде пассажира или тонкого, а не WEBrick, что означает, что для запуска сервера существует другая команда. (thin start -e production, например)

Это сложный вопрос, но лучше всего начать изучать различия, это посмотреть на конкретные environment.rb файлы. Когда рельсы загружаются, он начинается с файла среды, который соответствует вызываемой среде, то есть, если вы запустите его в процессе разработки, он начинается с загрузки вашего файла development.rb, или если вы в процессе производства, он загрузит файл production.rb. Различия в средах в основном являются результатом этих различий в различных конфигурационных файлах среды.

В принципе, если приложение Rails 3.1 находится в рабочем режиме, то по умолчанию он не собирается компилировать активы «на лету» , и много кэширования будет продолжаться, что не происходит в разработке. Кроме того, когда вы получаете сообщения об ошибках, они будут регистрироваться, но не будут отображаться пользователю, вместо этого будет использоваться статическая страница ошибки из вашего общего каталога.

Чтобы получить более полное представление об этом, я бы предложил прочитать соответствующие направляющие направляющих:

Руководство по инициализации Rails: http://guides.rubyonrails.org/initialization.html

Руководство по настройке Rails: http : //guides.rubyonrails.org/configuring.html

18
ответ дан andrewleung 28 August 2018 в 05:28
поделиться

Здесь есть два контекста, в которых вы можете использовать слово «производство». Один из них запускает сервер в режиме производства. Вы можете сделать это локально,

RAILS_ENV=production ./script/server 

. Конфигурация для этого выбирается из config / environment / production.rb. Попробуйте сравнить этот файл с config / environment / development.rb. Существуют только тонкие различия, такие как классы кеширования. Режим разработки упрощает работу, поэтому он будет реагировать на любые изменения, которые вы делаете мгновенно. Кроме того, будут использоваться две разные базы данных (по умолчанию), а именно: yourproject_development и yourproject_production, если вы решите запустить свой сервер в любом из этих режимов.

С другой стороны, развертывание рельсов в поле производства - это что-то другой. Вам нужно будет тщательно подобрать свой сервер. Возможно, вам придется иметь дело с сценарием развертывания, может быть, capistrano. Вам также может понадобиться балансировщик нагрузки, такой как netgear. База данных также может потребовать глубокого рассмотрения, например, ожидаемого размера, кластеризации master / slave и т. Д.,

Примечание: я никогда не использовал Rails 3. Этот ответ смещен в сторону 2.3.x.

2
ответ дан bragboy 28 August 2018 в 05:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: