如何处理Rails中已弃用资产的路由?

时间:2015-09-17 15:19:02

标签: ruby-on-rails ruby-on-rails-4

在我们的生产日志中,当某些IP(可能是机器人)试图访问已弃用的资产时,我们会收到类似的错误:

ActionController::RoutingError (No route matches [GET] "/fonts/bootstrap/glyphicons-halflings-regular.svg")

对我们来说这不是什么大问题,但我很好奇最好的办法是什么。我觉得我们应该返回410 HTTP状态,而不是它现在给出的404。此外,真的很想从日志中获取这30行长的错误消息。

Rails中是否有最佳做法或惯例来处理这些已弃用的资产路线?

1 个答案:

答案 0 :(得分:2)

我认为最好由您的网络服务器完成,而不是Rails应用程序。

我不期待Nginx,但你应该添加这样的东西:

location ~* /fonts/bootstrap/ {
  if (-f $request_filename) {
    break;
  }

  return 410;
}

Nginx location doc将提供有关如何正确执行此操作的更多信息。