Приветствую Тостеряне. Мозг в огне. Помогите, потушить пожар
Решая задачу по упрощению деплоя Rails приложений в демо окружение, столкнулся с парочкой проблем.
Фабула:
Захотелось что бы деплой для демо окружения проходил, при минимальном участии рук.
А именно, складывать все демо-приложения, для демонстрации, в папочки /var/www/apps/demo/$sitename/current/public
и что бы nginx разруливал $sitename исходя из адреса demo.server.ru/sitename.
Это успешно удалось реализовать
тут.
Но нависла новая проблема, Rails говорит:
ActionController::RoutingError (No route matches [GET] "/sitename"):
Поиски привели меня к такому решению. Но проблему это не решило
// config/enviroments/production.rb
config.relative_url_root = "/sitename"
config.action_controller.relative_url_root = "/sitename"
Единственное как удалось заставить, хоть как то заработать маршруты, это напрямую, грубо, добавить в config.ru
map '/sitename' do
run Myapp::Application
end
но это дало возможность только запустить root_path, все относительные ссылки при таком решении не работают.
При написании уже пришло в голову использовать поддомены, и тогда, наверное, получится избежать этой проблемы.
Но всё же хочется понять, как задать рельсам начальный путь, отличный от корня.