Изменение базового URL-адреса для разработки Rails 3

Я знаю, что собираюсь развернуть среду с моим приложением с базовым URL-адресом, который выглядит так:

http://someserver/mydepartment/myapp 

Моя среда разработки настроена на использование конфигурации Rails по умолчанию, которая выглядит так:

 http://localhost:3000/myapp 

Я хотел бы моделировать этот путь развертывания в моей среде разработки. То есть, я хотел бы разработать базовый URL-адрес, который выглядит следующим образом:

 http://localhost:3000/mydepartment/myapp 

Таким образом, я могу сделать все свои URL-адреса относительно «/», и они будут работать в обеих средах.

Как я могу его изменить, поэтому мое приложение будет жить по этому пути в моей среде разработки?

Решения, которые я нашел, но не работают для меня:

  • Настройка scope в routes.rb , похоже, не работает для статического контента public .
  • Использование возможностей перезаписи Apache. Я не хочу устанавливать Apache в свою область разработки. В идеале решение будет работать с WEbrick, хотя я, похоже, тоже работает с Mongrel (есть проблемы с Mongrel и Ruby 1.9.2).
  • Установка relative_url_root и аналогичных предложений, которые не работают с Rails 3.
  • Динамическое создание CSS / JavaScript и настройка путей для компенсации между средами разработки и производства.

    Вы можете попытаться сопоставить конфигурацию стойки приложений rails с другим base_uri. Все, что вам нужно сделать, это обернуть существующую команду «запустить» в блок карты

    попробуйте сделать это в файле config.ru вашего rails:

     map '/mydepartment' do run Myapp::Application end 

    Теперь, когда вы используете сервер rails, приложение должно быть на localhost: 3000 / mydepartment . Не уверен, что это даст вам желаемый результат, но стоит попробовать.

    Вот как вы можете развернуть приложение Rails 3.1 в подкаталоге в Apache, заменив config.action_controller.relative_url_root который больше не существует.

    В config/routes.rb :

     scope 'my_subdir' do # all resources and routes go here end 

    В конфигурационном файле Apache:

     Alias /my_subdir /var/www/my_subdir/public  SetEnv RAILS_RELATIVE_URL_ROOT "/my_subdir" PassengerAppRoot /var/www/my_subdir  

    И он должен работать, включая автоматическое указание всех ваших активов на /my_subdir .

    Добавьте строку ниже в конец config / environment.rb

     ActionController::Base.relative_url_root = "/mydepartment" 
    Давайте будем гением компьютера.