Как я могу изменить приложение Rails для запуска в рабочем режиме? Есть ли файл конфигурации, например environment.rb, для этого?Измените приложение Rails на производство
ответ
Изменить переменную окружения RAILS_ENV
на production
.
где находится переменная среды? – BKSpurgeon
Если mipadi's suggestion не работает, добавьте в конфиг/environment.rb
# force Rails into production mode when
# you don't control web/app server and can't set it the proper way
ENV['RAILS_ENV'] ||= 'production'
Спасибо !!! Помог мне много. –
Как насчет облачных сервисов, таких как Heroku? Может ли применяться к ним ENV ['RAILS_ENV'] || = 'production''? – Green
Это не сработало на рельсах 4 – franzlorenzon
Вы также можете передать среду для сценария/сервера:
$ script/server -e production
Если вы работаете на Passenger, то по умолчанию для запуска в производство, в вашем апача конф:
<VirtualHost *:80>
ServerName application_name.rails.local
DocumentRoot "/Users/rails/application_name/public"
RailsEnv production ## This is the default
</VirtualHost>
Если вы просто используете локальный сервер с беспородных или WEBrick, вы можете сделать:
./script/server -e production
или в Баш:
RAILS_ENV=production ./script/server
фактически отменяя постоянную RAILS_ENV в enviornment.rb, вероятно, следует ваше последнее средство, так как это, вероятно, не собирается оставаться множество (см another answer я дал на это)
Теперь это было бы
rails server -e production
Или, более компактный
rails s -e production
Она работает на рельсах 3+ проектов.
или короткая версия 'rails s -e production' –
Как насчет облачных сервисов, таких как Heroku? Как запустить на сервере 'server -e production'? – Green
Облачные сервисы обычно имеют опции для указания среды, но в них 'production' неизменно является значением по умолчанию. –
В Rails 3
Добавление Rails.env = ActiveSupport::StringInquirer.new('production')
в application.rb и rails s
будет работать так же, как rails server -e production
module BlacklistAdmin
class Application < Rails::Application
config.encoding = "utf-8"
Rails.env = ActiveSupport::StringInquirer.new('production')
config.filter_parameters += [:password]
end
end
Это не является хорошим способом для запуска сервера рельсы в производственной среде; «rails server -e production», потому что тогда rails работает как однопоточное приложение и может отвечать только на один HTTP-запрос за раз.
Лучшая статья о производственной среде для рельсов Production Environments - Rails 3
Ссылка на гниль ... доступна на машине с обратной связью: [ссылка] (http://web.archive.org/web/20121022083645/http:// ofps.oreilly.com/titles/9780596521424/production_id35801033.html) – rosuav
$> export RAILS_ENV=production
Пожалуйста, убедитесь, что вы сделали ниже в файле environment.rb.
ENV [ «RAILS_ENV»] || = «производства»
Если вы приложение работает в среде виртуального хостинга или phushion пассажира, возможно, потребуется необходимо внести изменения в .httaccess (внутри папки) и установить режим как производство.
для сервера по умолчанию: Rails S -e производства
для порта сервера Costum: Rails S -p [порт] -е производство, например. Rails S -p 3002 -e производство
rails s -e production
Это будет работать сервер с RAILS_ENV
= 'production'
.
Помимо этого вы должны установить путь активов в production.rb
config.serve_static_assets = true
Без этого ваши активы не будут загружены.
Извините ... проголосовали, когда хотели повысить. Сделано небольшое изменение, чтобы исправить ошибку и повысить. – tomd
Как уже писал: rails server -e production
Или, мой личный фаворит: RAILS_ENV=production
rails s
RAILS_ENV=production rails s
ИЛИ
rails s -e production
По умолчанию среды является Developement.
Кажется, что у второго ответа есть еще много голосов, вы бы хотели дать ему быстрый обзор и принять второй ответ, если у вас нет никаких проблем с ним. Только поможет будущим посетителям. Thx :) – Evolve