2010-12-05 83 views
2

我試圖在Passenger不支持的服務器上部署我的RoR 3.0應用程序。一切工作正常,直到我決定爲我的應用程序服務器使用Apache虛擬文件夾。在生產環境中,我現在必須在所有URL前手動添加文件夾名稱,例如在所有url_for調用中使用:host =>「myServer/myApp」。它有效,但很痛苦。有人知道一個很好的自動化方法嗎?使用虛擬文件夾名稱前綴所有網址

這裏是我讀很多帖子後,至今未能成功嘗試:

  • 定義default_url_for {:主機=> 「myServer上/對myApp」}在application.rb中,但都沒有效果

  • 我發現了一些指示來定義url_for並從裏面調用super。無效果或者

感謝您的幫助

Hadrien

+1

上面提到的兩種解決方案聽起來像是最好的選擇 - 如果你能讓他們工作。如果你走這條路線,你需要在ActionView :: Helpers :: UrlHelper下的monkey patch url_for。你也可以嘗試命名空間:http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing – Cory 2010-12-05 21:38:07

回答

1

快速和骯髒的解決方案是包裝一個scope塊內的一切在你的config/routes.rb文件文件:

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

    resources :users 
    # ... 

end 
相關問題