0

我刚刚为现有的复杂网站编写了导入/导出功能。它的设置方式是在 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?考虑到我正在渲染相同的旧“显示”动作,为什么它至少不会在“显示”页面上抱怨?为什么缺少图形会导致“我们很抱歉,但出了点问题”消息?

我的网站图标实际上是在异地托管的,application.html.erb 中的链接是

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

1 回答 1

4

这不是“Rails 在一次操作中抱怨 favicon.ico”,而是“Web 浏览器尝试获取此应用程序没有的 favicon.ico”。尝试挖掘为什么您的浏览器需要它?您是否从此操作中返回其他内容?挖掘 Chrome Inspector/Firebug 的网络选项卡,检查响应标头/正文,检查您的浏览器何时尝试获取 favicon.ico 文件(可能是在响应正文返回之前,因为它花费了太长时间?)

另外关于你的最后一个问题:

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

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

于 2012-05-30T10:08:08.533 回答