Как настроить полноценный сайт "hello world" с рельсами 3.1 в производственном режиме? - PullRequest
2 голосов
/ 27 ноября 2011

Я борюсь с настройкой рельсового веб-сайта в производственном режиме.Промежуточной целью будет создание очень простого веб-сайта.Я использую Rails 3.1.0, rake 0.9.2.2 и Ruby 1.9.2.

Вот что я попробовал, с неудачными результатами до сих пор:

изначально, убедитесь, что RAILS_ENVне установлено

rails new test_project

cd test_project

rails generate scaffold User name:string email:string

rake db:migrate

rails s

перейдите к localhost: 3000 или localhost: 3000 / users

все выглядит хорошо.

сейчас, попытайтесь настроить это для производства:

export RAILS_ENV=production

rake db:migrate

rake assets:precompile

rails s

перейдите на локальный хост: 3000

ПРОБЛЕМА: Routing Error; No route matches [GET] "/"

уничтожение рельсов

в конфигурации / маршрутах, добавьте root :to => 'users#index'

rails s

теперь может просматривать localhost: 3000 и localhost: 3000 / users

НО, rails генерирует следующие ошибки:

Started GET "/assets/application-00960e5186894b532975562d59176a6a.css" for 127.0.0.1 at 2011-11-26 23:09:44 -0800

  ActionController::RoutingError (No route matches [GET] "/assets/application-00960e5186894b532975562d59176a6a.css"):

  Started GET "/assets/application-ae30e133eabbb10d9464189d3fb71e25.js" for 127.0.0.1 at 2011-11-26 23:09:44 -0800

  ActionController::RoutingError (No route matches [GET] "/assets/application-ae30e133eabbb10d9464189d3fb71e25.js"):

Может кто-нибудь пролить свет на то, как исправитьВыше простая попытка заставить проект Rails 3.1 работать в «производственном» режиме?

Ответы [ 2 ]

5 голосов
/ 28 ноября 2011

Основная проблема заключается в том, что конфигурация по умолчанию для запуска приложения в «производственном» режиме делает некоторые предположения о развертывании - в первую очередь, что вы используете другой веб-сервер (например, nginx, apache) для обслуживания статических ресурсов. Вы получаете файл не найден ошибок, потому что по умолчанию Rails не будет обслуживать статические активы в производственном режиме

Если вы пытаетесь использовать WEBrick для дублирования «производственной» среды, его необходимо настроить для обслуживания статических ресурсов. Вы можете просто перевернуть логическое значение в вашем производстве. Rb

окружающая среда / production.rb # Отключить сервер статических ресурсов Rails (Apache или nginx уже сделают это) config.serve_static_assets = false

После внесения этого изменения и перезапуска сервера вы будете обслуживать ресурсы, которые вы предварительно скомпилировали с помощью WEBrick, что, хотя и неэффективно, несомненно, даст вам представление о том, каково это в работе.

0 голосов
/ 27 ноября 2011

Ошибка маршрутизации, перейдите в свой файл rout.rb и добавьте

resources: users

Теперь, когда вы запускаете 'rake маршруты' из терминала, вы увидите соответствующие маршруты, по которым вам нужно перемещатьсяэта модель.

...