如何在routes.rb中将“/”路由到public / index.html?

时间:2012-02-27 20:12:14

标签: ruby-on-rails facebook heroku routes

我的Facebook应用程序使用AS3前端和APIish Rails后端。

Facebook要求你的“画布页面”(你的应用程序页面被吸入Facebook chrome)要么是动态的(index.erb),要么是目录(以“/”结尾)。由于我不知道Rails的观点,我选择了“myapp.herokuapps.com /".

的网址。

Heroku日志会出现此错误:

ActionController :: RoutingError(没有路由匹配“/”)

如何将“/”与索引文件匹配?

匹配“/”=> ????

我习惯于路由资源,但不习惯静态页面。

3 个答案:

答案 0 :(得分:6)

如果要将静态页面显示为根,则应使用High Voltage gem。这允许您按如下方式向站点添加静态页面:

  • gem 'high_voltage'添加到您的Gemfile
  • 将您的静态home.html.erb页放入/app/views/pages/
  • 使用root to: => 'high_voltage/pages#show', :id => 'home'
  • 路由到您的静态页面

不需要重定向。

高压文档可在https://github.com/thoughtbot/high_voltage找到。

答案 1 :(得分:2)

您需要在routes.rb文件中定义root_path

所以root :to => 'YOUR_CONTROLLER_NAME#YOUR_CONTROLLER_ACTION'应该这样做。

如果您想将其映射到文件,那么只需在公共目录中提供该文件的名称,因此如果您想将public / index.html映射到root,那么这将起作用:

root :to => 'index'

答案 2 :(得分:0)

两个答案都是正确的;然而,thinkbot的人们推荐以下内容:

  1. " config / initializers /"创建文件" high_voltage.rb"
  2. 写入以下代码

    HighVoltage.configure do |config|
        config.home_page = "home"
    end
    
  3. 重新启动服务器

  4. 您可以查看https://github.com/thoughtbot/high_voltage#specifying-a-root-path

    上的文档