2012-02-27 47 views
0

我的Facebook应用使用AS3前端和APIish Rails后端。如何在routes.rb中将“/”路由到public/index.html?

的Facebook需要你的“画布页面”(您的应用页面吸引到了Facebook铬)或者是动态的(index.erb)或目录(最终以“/”)。由于我不知道Rails的意见,我去了“myapp.herokuapps.com/”的网址。

Heroku的日志给这个错误:

的ActionController :: RoutingError(无路由匹配 “/”)

我如何能匹配 “/” 索引文件?

匹配 “/”=> ????

我用的布线资源,而不是静态网页。

回答

6

如果你想显示一个静态页面作为你的根,你应该使用高压宝石。这允许您添加静态页面到您的网站如下:

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

没有重定向是必要的。

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

+0

Bam!那就是诀窍。 – 2012-02-27 22:14:11

+0

我会投票,但我还没有代表。 – 2012-02-27 22:15:56

3

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

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

如果你想把它映射到一个文件,然后只给公共目录中的文件名,所以如果你想映射公共/ index.html的根,然后这会工作:

root :to => 'index' 
+0

所以“/”会自动匹配到根?那么我怎样才能将根映射到页面而不是控制器呢? root:to =>“public/index.html”? – 2012-02-27 20:31:19

+0

查看我的更新回答。请接受和upvote,如果它适合你! – TheDelChop 2012-02-27 20:34:06

+0

路线仍有望期待的动作PARAM:/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.0.9/lib/action_dispatch/routing/mapper。rb:171:在'default_controller_and_action'中:missing:action(ArgumentError) – 2012-02-27 20:50:58

相关问题