favicon.ico的不合理RoutingError

时间:2012-05-30 10:00:19

标签: ruby-on-rails rails-routing

我刚刚完成了对现有复杂网站的导入/导出功能的编程。它的设置方式是在games / 5 show动作中,我有一个“导入”和一个“导出”按钮。这些导致适当命名的控制器操作,它们执行导入/导出,然后再次render :action => show

单击导出操作会显示“我们很抱歉,但出现了问题”消息,而production.log提供了

Started GET "/games/3/export" for 212.87.32.10 at 2012-05-30 09:30:18 +0000
Processing by GamesController#export as HTML
  Parameters: {"id"=>"3"}


Started GET "/favicon.ico" for 212.87.32.10 at 2012-05-30 09:30:50 +0000

ActionController::RoutingError (No route matches [GET] "/favicon.ico"):
  actionpack (3.2.2) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (3.2.2) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
  railties (3.2.2) lib/rails/rack/logger.rb:26:in `call_app'
  railties (3.2.2) lib/rails/rack/logger.rb:16:in `call'
  ...

为什么Rails只抱怨这一行动中的favicon,当有数百个页面使用相同的模板?考虑到我正在呈现相同的旧“节目”动作,为什么它至少不会在“节目”页面上抱怨?为什么缺少的图形会导致“我们很遗憾,但出现了问题”的消息呢?

我的favicon实际上是在异地托管,application.html.erb中的链接是

<link rel="shortcut icon" href="http://www.wooga.com/wp-content/themes/wooga-dev/images/favicon.ico" type="image/x-icon" />

1 个答案:

答案 0 :(得分:4)

这不是“Rails在一个动作中抱怨favicon.ico”,它是“网络浏览器试图获取此应用程序没有的favicon.ico”。试着挖掘为什么你的浏览器需要它?你还从这个行动中归还了别的东西吗?挖掘Chrome Inspector的/ Firebug的网络选项卡,检查响应标题/正文,检查您的浏览器何时尝试获取favicon.ico文件(可能是在响应主体返回之前,因为它花了太长时间?)

还有关于你的上一个问题:

  

为什么缺少的图形会导致“我们很抱歉,但出现了问题”的消息呢?

Rails不知道“/favicon.ico”应该返回图像文件。这是404响应的标准请求,默认情况下返回“我们很抱歉......”消息。