2015-04-10 27 views
12

Mam Serwer który Prokurenci cały ruch na /rails do serwera B.Running Rails + Passenger + Devise z podkatalogu?

Więc konfiguracji tego wirtualnego hosta, a większość rzeczy działa ... w porządku. link_to jest zepsuty i generuje adresy URL do /users w przeciwieństwie do /rails/users, ale mogę obejść to.

Jeśli ustawię config.action_controller.relative_url_root na /rails, to moje trasy będą działać OKREŚLIĆ wszystkie trasy obliczeniowe. Wskazują na nagi adres URL. Jak poprawnie skonfigurować serwer B, aby zrozumieć, że działa on w podkatalogu i generuje poprawnie łącza i trasy?

<VirtualHost *:80> 
    ServerName http://ec2-url.compute-1.amazonaws.com/ 
    SetEnv RDS_HOSTNAME "mydb..." 
    SetEnv RAILS_RELATIVE_URL_ROOT "/rails" 

    DocumentRoot /home/ubuntu/myapp/public 
    RailsEnv staging 
    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/app.log combined 
    PassengerLogLevel 3 
    <Directory "/home/ubuntu/myapp/public"> 
Options FollowSymLinks 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
    Options -MultiViews 
    Require all granted 
    </Directory> 
</VirtualHost> 

Używam szyn 4.

+0

jaka wersja szyn używasz? – johnsorrentino

+0

Dodano do pytania. –

Odpowiedz

5

W plikach środowiska dodaj konfigurację dla OmniAuth.config.full_host.

OmniAuth.config.full_host = 'http://myfullurl/subdir'

Teraz w application_controller.rb, dodać tę metodę:

def after_sign_in_path_for(resource_or_scope) 
    path = super(resource_or_scope) 
    "#{OmniAuth.config.full_host}#{path}" 
end 
0

Byłoby wspaniale, jeśli Podziel się routes.rb, ale myślę, że w łatwy sposób zmienić opracowanie tras jest umieścić coś jak poniżej w routes.rb

scope '/rails' do 
    devise_for :users 
end 
+1

Powoduje to utworzenie tras takich jak/szyny/szyny –

+0

Nie rozumiem. Najpierw mówisz, że devise tworzy trasy takie jak "/" (wskazują na goły URL). A przy zasięgu generuje podwójny zakres ??? – Aguardientico

+0

@StefanKendall Wypróbuj poniższe: http://quickhack.net/nom/blog/2012-09-19-rails-with-relative-url-root.html jest w języku japońskim, ale przykłady są po prostu angielskie – Aguardientico