【问题标题】:ActionController::RoutingError (No route matches [GET] "/favicon.ico") in RailsRails 中的 ActionController::RoutingError (No route matches [GET] "/favicon.ico")
【发布时间】:2013-03-28 16:43:36
【问题描述】:

我试过用

<link href="/favicon.ico" rel="shortcut icon" /> 

还有这个

<link href="/assets/favicon.ico" rel="shortcut icon" />

但我仍然在日志文件中看到此错误

ActionController::RoutingError (No route matches [GET] "/favicon.ico"):

favicon.ico 在公共文件夹中(我也将它放在 app/assets 文件夹中)

如何解决这个错误?

【问题讨论】:

  • 尝试将 favicon.ico 添加到 Web 服务器的根目录,然后重试。

标签: ruby-on-rails ruby-on-rails-3


【解决方案1】:

您收到此错误是因为您的应用程序的public/ 目录中没有favicon.ico。由于该文件不存在,Rails 继续前进,在config/routes.rb 中寻找与/favicon.ico 匹配的路由。

您可以通过以下两种方式之一解决此问题

  1. 手动将favicon.ico 文件放在应用程序的public/ 目录中。
  2. favicon.ico 放入app/assets/images/,然后将&lt;link ... 标签更改为使用image_path

    <link href="<%= image_path("favicon.ico") %>" rel="shortcut icon" />
    

    这会将favicon.ico 放在public/assets/favicon.ico 中,不是在文档根目录中。

我建议坚持上面的#1


至于为什么这个请求甚至会出现在您的日志中,许多现代浏览器会在域的根目录中查找 /favicon.ico 以用于添加书签或在选项卡或地址中显示酒吧。这就是为什么最好将 favicon.ico 保留在域的根目录中,以防浏览器决定(无论出于何种原因)忽略您的 &lt;link rel="icon shortcut" ... 标记。

【讨论】:

  • 我必须同时执行 #1 和 #2。我正在使用 favicon_link_tag 助手。
  • 我认为你是完全正确的。我的网站图标配置全部设置正确,但我仍然偶尔会看到这些错误。很难确认,但我的猜测是某些设备/浏览器/UserAgent 是硬编码的,以便在公共目录中查找它作为 favicon.ico。我们在公共目录中的一个只是为了满足这些请求并且错误消失了。
【解决方案2】:

这是 Rails 默认在 application.html.erb 中生成的:

<%= favicon_link_tag 'favicon.ico', :rel => 'shortcut icon' %>

在 /public 下找不到 favicon.ico

如果您将标签更改为:它可以正常工作(在 /public 下找到 favicon.ico):

<%= favicon_link_tag %>

【讨论】:

    【解决方案3】:

    favicon.ico 放在我的公用文件夹中不起作用,因此我结合了其他一些答案来提出这种简单的工作方法。

    复制favicon_link_tag 的输出并注入image_path,如下所示:

    <link href="<%= image_path("favicon.ico") %>" rel="shortcut icon" type="image/vnd.microsoft.icon" />
    

    现在将favicon.ico 放入您的assets/images 文件夹中即可。

    【讨论】:

      【解决方案4】:

      favicon.ico放入app/assets/images/,然后添加

      <link href="<%= image_path("favicon.ico") %>" rel="shortcut icon" />
      

      在布局文件中。

      这对我有用。

      【讨论】:

        猜你喜欢
        • 2016-03-15
        • 2017-04-10
        • 2022-12-26
        • 1970-01-01
        • 1970-01-01
        • 2019-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多