Как смонтировать приложение Rails 3.x с префиксом Passenger? - PullRequest
1 голос
/ 04 ноября 2011

Я использую Rails 3.x с Passenger, и у меня возникают проблемы с пониманием того, как правильно установить префикс приложения так, чтобы оно понимало, - как маршрутизировать URL-адреса, начинающиеся с префикса, - как генерировать пути так, чтобы онис префиксом / foo

Другие спрашивали об этом (например, здесь ), однако у меня все еще нет полной картины.

До Пассажира,Я запускал шавки с RAILS_RELATIVE_URL_ROOT , который инициализирует ActionController :: Base.config.relative_url_root, который позволяет Rails генерировать пути к активам с правильным префиксом.Кроме того, я определял все свои маршруты, например,

    MyApp::Application.routes.draw do
      scope ActionController::Base.config.relative_url_root do
        ...
      end
    end

, что позволяет Rails правильно маршрутизировать и генерировать URL-адреса.

При переключении в режим «Пассажир» я устанавливаю passenger_base_uri (на языке nginx), как описано в Документах для пассажиров.Затем пассажир устанавливает относительный_url_root, который позволяет Rails генерировать пути к ресурсам.Пассажир также, кажется, удаляет префикс из URL перед передачей его в Rails.Поэтому я должен удалить область маршрутизации, чтобы иметь URL-адреса маршрутов Rails.НО удаление области также препятствует тому, чтобы Rails правильно генерировал URL.

Итак, как я могу заставить Rails генерировать правильные пути?Чего мне не хватает?

1 Ответ

0 голосов
/ 30 января 2013

Я делаю это, используя nginx + thin . От config/routes.rb:

MyRailsApp::Application.routes.draw do

  scope '/abc' do
    resources :projects
    root :to => 'home#index'
  end

end

Доступ через:

http://myhost/abc/
...