RoR link_to和资产路径

时间:2012-04-12 15:12:48

标签: ruby-on-rails ruby-on-rails-3 iis-7 iis-7.5 helicontech

我有一个通过HeliconZoo模块在IIS 7.5上运行的RoR(1.9.3 - 3.2)应用程序。 它位于http://server/application/

之类的子目录中

现在,如果我将link_to用于直接位置,例如<%link_to“/ users”%>它链接回http://server/users而不是http://server/application/users(链接到控制器操作时效果很好)。

此外(这是更大的问题)应用程序正在将所有资产预编译到服务器/应用程序/公共/资产中,但在呈现时在服务器/公共/资产中搜索它们。 如果我设置config.assets.prefix,资产也会被渲染到不同的位置(“/ application / ...”每次添加),这会导致持续的异步,并且永远不会加载资源。 我可以通过将config.assets.prefix更改为“/ application / public / assets”进行预编译并将其更改回默认值来解决此问题,但这非常烦人。

是否有某种配置告诉渲染器在直接链接和资产上添加前缀(“/ application”)?

2 个答案:

答案 0 :(得分:0)

我从来没有使用IIS或HeliconZoo进行Rails部署,所以这可能不起作用,但无论如何我都会采取行动,因为在我看来你真正想做的是获取Rails了解你正在将它部署到子文件夹,这并不太难。只需将routes.rb中的所有内容封装在范围内,如下所示:

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

我直接从here复制了这个答案,这可能会为您提供更多有用的信息。

答案 1 :(得分:0)

请尝试打开IIS管理器,导航到“应用程序”文件夹,打开上下文菜单并选择“转换为应用程序”。通常不需要特别修改Ruby代码。