2011-08-12 47 views
1

我试图安装一个机架应用程序来加载我的导轨2.3.12在某些控制器中使用ssl的应用程序。直到我请求使用HTTPS,然后我得到的无非是纯白色的页面,上面写着更加任何网页一切正常就好了“未找到:/ SOME_PATH”在Rails 2.3.12和HTTPS失败中安装机架应用程序

这里是什么样子: https://skitch.com/jimmybaker/fq7js/https-fail

我使用phusion乘客+ nginx + ree部署我的rails应用程序。我把我的config.ru文件在我的Rails应用程序的根,这里是什么样子:

#!/usr/bin/env ruby 
require 'logger' 
require 'config/environment' 
require 'resque/server' 

use Rack::ShowExceptions 

# Set the AUTH env variable to your basic auth password to protect Resque. 
AUTH_PASSWORD = 'xxxxxxx' || ENV['AUTH'] 
if AUTH_PASSWORD 
    Resque::Server.use Rack::Auth::Basic do |username, password| 
    password == AUTH_PASSWORD 
    end 
end 

run Rack::URLMap.new \ 
    '/'  => ActionController::Dispatcher.new, 
    '/resque' => Resque::Server.new 

正如你所看到的,我试图加载了resque-web前端查看职位在我的redis队列中。再次,我能够访问resque前端,问题是这打破了我的Rails应用程序中需要ssl的所有控制器。

回答

1

我在这里有完全一样的东西,但我做到了,以不同的方式:

require File.dirname(__FILE__) + '/config/environment' 
require 'resque/server' 

Resque::Server.class_eval do 

    use Rack::Auth::Basic do |username, password| 
    begin 
     user = User.authenticate(username, password) 
     user && user.is_admin? 
    rescue AuthenticatedSystem::InvalidLogin 
     false 
    end 
    end 

end 

app = Rack::Builder.new { 
    use Rails::Rack::Static 

    map "/resque" do 
    run Resque::Server 
    end 

    map "/" do 
    run ActionController::Dispatcher.new 
    end 
}.to_app 

run app 
+0

我没有试过,但我要去不久。你是否说这解决了这个问题?我注意到你已经在你的“/”之前将你的/ resque映射到了Rack :: Builder中。我想知道如果这是关键.. –

+0

刚刚尝试过,仍然是同样的问题。我会稍微研究一下机架,如果找到答案,我会发布答案。 –

相关问题