2010-12-05 5 views
2

Ich versuche, meine RoR 3.0-Anwendung auf einem Server bereitzustellen, der nicht von Passenger unterstützt wird. Alles funktionierte gut, bis ich beschloss, einen virtuellen Apache-Ordner für meinen Anwendungsserver zu verwenden. In der Produktionsumgebung muss ich nun den Ordnernamen vor allen URLs manuell hinzufügen, zum Beispiel mit a: host => "myServer/myApp" in allen URL_for-Aufrufen. Es funktioniert, aber es ist schmerzhaft. Kennt jemand eine nette Art, es zu automatisieren?Präfix für alle URLs mit dem Namen des virtuellen Ordners

Hier ist, was ich bisher ohne Erfolg versucht, nach vielen Beiträge zu lesen:

  • definieren default_url_for {: host => "myServer/myApp"} in application.rb, hatte aber keine Wirkung

  • Ich habe einen Hinweis gefunden, um url_for zu definieren und super von drinnen aus aufzurufen. Keine Wirkung entweder

Danke für Ihre Hilfe

Hadrien

+1

Die zwei Lösungen, die Sie oben erwähnen, klingen wie die beste Wette - wenn Sie sie zur Arbeit bringen können. Unter ActionView :: Helpers :: UrlHelper musst du die URL url_for affen, wenn du diese Route befolgst. Sie könnten Namespacing auch versuchen: http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing – Cory

Antwort

1

Die schnelle und schmutzige Lösung ist alles in einem scope Block in Ihrer config/routes.rb Datei zu wickeln:

scope 'myApp' do # replace 'myApp' with the virtual folder name 

    resources :users 
    # ... 

end