Ruby on Rails - 静态页面作为起始页面

mee*_*u28 1 routes ruby-on-rails apache2 directoryindex

我正在开发一个具有静态和动态部分的应用程序.静态部分放置在应用程序的公共/文件夹中.现在,如果我在我的公共文件夹中有一个index.html,那么我将无法使用我的routes.rb中配置的路由如果我有一个索引,那么map.connect /:controller /:action之类的默认配置将无法使用html的.所以我删除了索引html.

现在我在我的公共/文件夹中有一个静态页面startpage.html,它必须是应用程序的起始页面.我在其中有其他静态/动态页面的链接.

RoR应用程序托管在apache中,我试图通过添加DirectoryIndex参数来配置虚拟主机配置,这样当网站发出请求时,它会将它引导到startpage.html,但它仍然需要我到默认控制器我在routes.rb中指定了map.root

我不想添加虚拟控制器和操作,并创建一个具有startpage的视图,并配置routes.rb以将其用作根.我在这里要做的是

基本上,startpage.html应该是我在app中的第一页,作为public/folder中的静态页面.然后,它将具有指向其他页面和控制器/操作的链接

在这里,我无法apache重定向到html页面,而不是将控件传递给rails应用程序.目录列表也可以通过使用选项索引启用,但仍然没有更改.

有人指点吗?

Jon*_*ian 6

现在,如果我的公共文件夹中有index.html,那么我将无法使用routes.rb中配置的路由.

这是不正确的.你的问题的解决方案是重命名startpage.htmlindex.html,这将导致请求/被服务index.html,并且任何请求/:controller/:action将被传递给Rails路由引擎.

Apache将首先提供它在public目录中可以找到的任何内容.如果它不可用,那么它将请求传递给Rails(这是页面缓存的工作方式).

随着index.html到位,你并不需要map.root,因为它永远不会要求(请记住,Apache的供应/index.html).而且您也不需要任何特殊指令.