2012-04-12 98 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