2012-04-12 140 views
0

我有一個RoR(1.9.3 - 3.2)應用程序通過HeliconZoo模塊在IIS 7.5上運行。 它坐落在象http://server/application/RoR link_to和資產路徑

現在,如果我的link_to使用與像<%的link_to直接位置的子目錄「/用戶」%>它與回http://server/users而不是http://server/application/users(同時鏈接到一個控制器的動作作品精細)。

另外(這是更大的問題),應用程序將所有資源預編譯到服務器/應用程序/公共/資產,但在渲染時在服務器/公共/資產中搜索它們。 如果我設置config.assets.prefix,資產也被渲染到不同的位置(每次添加「/ application/...」),這會導致恆定的異步並且永遠不會加載資產。 我可以通過將config.assets.prefix更改爲「/ application/public/assets」來進行預編譯並在之後將其更改回默認值,但這很煩人。

是否有某種配置告訴渲染器在直接鏈接和資產上添加前綴(「/ application」)?

回答

0

我從來沒有使用過IIS或HeliconZoo for Rails部署,所以這可能無法正常工作,但無論如何我會採取措施回答,因爲在我看來,你真正想要做的就是讓Rails瞭解您將其部署到子文件夾中,這並不難。簡單地封裝在routes.rb一切範圍內,像這樣:

scope "/context_root" do 
    resources :controller 
    resources :another_controller 
    match 'welcome/', :to => "welcome#index" 
    root :to => "welcome#index" 
end 

我直接從here,這可能會爲您提供更多有用的信息複製這個答案。

+0

當這樣做的資產正在正確加載,但鐵軌希望應用程序的其餘部分在/服務器/應用程序/應用程序顯然什麼都沒有,所以我得到一個404錯誤每次。 – Nikom 2012-04-12 16:26:38

0

請嘗試打開IIS管理器,導航到「應用程序」文件夾,打開上下文菜單並選擇「轉換爲應用程序」。通常,不需要特定的Ruby代碼修補。

+0

不起作用。我已經嘗試了幾乎所有的IIS設置,似乎沒有任何工作。 控制器操作與「應用程序/」前綴鏈接,所以我猜IIS假定應用程序在根中,這就是爲什麼直接鏈接總是進入網頁的根而不是應用程序。不明白爲什麼... – Nikom 2012-04-17 14:22:28