如何从我的Rails应用中删除网站图标?

4

我有一个Rails 3.2.6应用程序,正在使用资产管道,并且我没有favicon.ico文件,但由于某种原因,我的应用程序仍在寻找它,这导致问题。

Started GET "/favicon.ico" for 127.0.0.1 at 2012-06-18 16:20:44 -0400
Processing by PlaylistsController#index as 

我不知道是什么原因导致它被调用...我的应用程序中根本没有带有文字“favicon”的内容。

我的问题是,在Rails中是否有一个地方可以让它停止?

以下是我的信息

<head>
  <title>Playlist</title>
  <meta content='width=device-width, initial-scale=1.0' name='viewport'>
  <!--[if lt IE 9]>
    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
  <![endif]-->
  <link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
    <link href="/assets/common.css?body=1" media="all" rel="stylesheet" type="text/css" />
    <link href="/assets/app.css?body=1" media="all" rel="stylesheet" type="text/css" />
    <link href="/assets/bootstrap_and_overrides.css?body=1" media="all" rel="stylesheet" type="text/css" />
    <link href="/assets/jquery-ui-1.8.21.custom.css?body=1" media="all" rel="stylesheet" type="text/css" />
    <link href="/assets/main.css?body=1" media="all" rel="stylesheet" type="text/css" />
    <link href="/assets/dataTables/jquery.dataTables.css?body=1" media="all" rel="stylesheet" type="text/css" />
    <link href="/assets/dataTables/jquery.dataTables.bootstrap.css?body=1" media="all" rel="stylesheet" type="text/css" />
  <script src="/assets/jquery.js?body=1" type="text/javascript"></script>
    <script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
    <script src="/assets/dataTables/jquery.dataTables.js?body=1" type="text/javascript"></script>
    <script src="/assets/dataTables/jquery.dataTables.bootstrap.js?body=1" type="text/javascript"></script>
    <script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
    <script src="/assets/bootstrap.js?body=1" type="text/javascript"></script>
    <script src="/assets/editable.js?body=1" type="text/javascript"></script>
    <script src="/assets/mutils.js?body=1" type="text/javascript"></script>
    <script src="/assets/custom.js?body=1" type="text/javascript"></script>
    <script src="/assets/application.js?body=1" type="text/javascript"></script>
  <link href="/assets/datatables.css?body=1" media="screen" rel="stylesheet" type="text/css" />
  <meta content="authenticity_token" name="csrf-param" />
    <meta content="Pccg3siV8wY7LftMfpyi5rgFArjehQb7g5o1BF7QL1I=" name="csrf-token" />


2
我认为是你的浏览器在寻找它,而不是应用程序。 - Sergio Tulentsev
在Rails应用程序中是否有一种方法可以忽略该请求……也许是一个什么也不做的自定义路由? - Matt Elhotiby
1个回答

12

不,没有办法。

所有当前流行的浏览器(除了Seamonkey)都会自己向/favicon.ico发送GET请求,无法阻止它们这样做。如果该文件不存在,它们仍然会请求它,并继续请求它;你的应用程序或服务器对此没有任何改变的能力。

Rails默认在public文件夹中包含一个大小为0的favicon.ico文件,这样就不会返回一个永远不会被看到的HTML 404页面,而是发送一个长度为零的响应。在大多数生产配置下,这将被缓存并且速度更快,因为它不需要通过Ruby进行处理。


安德鲁,你是我的朋友SO传奇 :) - Gustavo Matias

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接