Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RoR链接到资源和路径_Ruby On Rails_Ruby On Rails 3_Iis 7_Iis 7.5_Helicontech - Fatal编程技术网

Ruby on rails RoR链接到资源和路径

Ruby on rails RoR链接到资源和路径,ruby-on-rails,ruby-on-rails-3,iis-7,iis-7.5,helicontech,Ruby On Rails,Ruby On Rails 3,Iis 7,Iis 7.5,Helicontech,我有一个RoR 1.9.3-3.2应用程序,通过HeliconZoo模块在IIS7.5上运行。 它位于一个子目录中,如 现在,如果我将link_to与直接位置一起使用,就像它被链接回一样,而不是在链接到控制器动作时使用 还有一个更大的问题是,应用程序正在将所有资产预编译为server/application/public/assets,但在渲染时正在server/public/assets中搜索它们。 如果我设置config.assets.prefix,资产也会呈现到不同的位置/应用程序/。。。

我有一个RoR 1.9.3-3.2应用程序,通过HeliconZoo模块在IIS7.5上运行。 它位于一个子目录中,如

现在,如果我将link_to与直接位置一起使用,就像它被链接回一样,而不是在链接到控制器动作时使用

还有一个更大的问题是,应用程序正在将所有资产预编译为server/application/public/assets,但在渲染时正在server/public/assets中搜索它们。 如果我设置config.assets.prefix,资产也会呈现到不同的位置/应用程序/。。。每次添加都会导致恒定的去同步,并且永远不会加载资产。 我可以通过将config.assets.prefix更改为/application/public/assets进行预编译,然后将其更改回默认值来解决这个问题,但这非常烦人


是否有某种配置来告诉渲染器在直接链接和资源上添加前缀/应用程序?

我从未使用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

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

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

执行此操作时,资产被正确加载,但rails希望应用程序的其余部分位于/server/application/application,其中显然没有任何内容,因此每次都会出现404错误。不起作用。我在IIS上尝试了几乎所有的设置,但似乎没有任何效果。控制器操作与应用程序/前缀链接,因此我猜IIS假定应用程序位于根目录中,这就是为什么直接链接总是进入网页的根目录而不是应用程序。我不明白为什么。。。