Phusion Passenger - маршрут существует, но не соответствует (вместо этого выдает 404) - PullRequest
2 голосов
/ 13 июля 2011

Я запускаю приложение rails 3 на корневом уровне в среде фьюжн-пассажиров (CentOS, apache) и испытываю трудности с поиском пассажиром некоторых маршрутов, хотя rake routes показывает маршруты правильно.В разработке все работает нормально (то есть, используя rails server вместо phusion passenger в apache).

У меня есть раздел администратора для моего приложения со страницей входа.Основная часть приложения работает, но все, что находится в разделе администратора, недоступно, потому что я получаю 404 вместо страницы входа в систему (когда я отключаю вход в систему, я могу получить доступ к страницам администратора).Моя конфигурация apache:

<VirtualHost *:80>
  ServerName foo.bar.com
  DocumentRoot /var/www/apps/myapp/current/public
  <Directory /var/www/apps/myapp/current/public>
    Allow from all
    Options -MultiViews
  </Directory>
</VirtualHost>

Мой процесс входа в систему реализован как before_filter в контроллере администратора:

class Admin::AdminController < ApplicationController

  # login disabled for testing
  before_filter :require_login

  def require_login
    @current_user ||= User.find_by_id(session[:user_id])
    redirect_to admin_login_path unless @current_user
  end
end

Мой файл маршрутов имеет

Mpf::Application.routes.draw do
  secure_protocol = "https://"
  ...
  namespace "admin" do
    ...
    match "login" => "user_sessions#new", :as => :login, :constraints => { :protocol => secure_protocol }
    ...    
  end
  ...
end

и когдаЯ запускаю рейк-маршруты. Я получаю

admin_login        /admin/login(.:format)      {:protocol=>"http://", :action=>"new", :controller=>"admin/user_sessions"}

НО, когда я пытаюсь получить доступ к http://foo.bar.com/admin, я получаю 404, и журнал показывает

Started GET "/admin/login" for iii.iii.iii.iii at 2011-07-13 07:20:41 -0400
ActionController::RoutingError (No route matches "/admin/login"):

Насколько я могу судитьэто должно работать ... за исключением того факта, что это не так.Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 13 июля 2011

Вы пытались получить доступ с помощью https://?Похоже, что вы предоставили ограничения для предотвращения доступа со стороны http://, а ссылка, которую вы разместили, ссылается http://.

...