34

私は使用しようとしました

<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 は public フォルダーにあります (app/assets フォルダーにも入れました)

このエラーを修正するには?

4

4 に答える 4

54

favicon.icoアプリケーションのpublic/ディレクトリにがないため、このエラーが発生しています。そこにはファイルが存在しないため、Rails は先に進み/favicon.icoconfig/routes.rb.

これは、2 つの方法のいずれかで修正できます。

  1. favicon.icoファイルをアプリケーションのディレクトリに手動で配置しpublic/ます。
  2. を入れてから、使用するタグを変更favicon.icoしてくださいapp/assets/images/<link ...image_path

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

    これにより、 がドキュメント ルートではなく に配置favicon.icoれます。public/assets/favicon.ico

上記の#1に固執することをお勧めします。


このリクエストがログに表示される理由については、最近のブラウザの多くは、ドメインのルートを調べて、/favicon.icoブックマークや、タブまたはアドレス バーでの表示に使用しています。これがfavicon.ico、ブラウザが (何らかの理由で)<link rel="icon shortcut" ...タグを無視することを決定した場合に備えて、ドメインのルートに を保持することをお勧めする理由です。

于 2013-03-28T17:12:35.707 に答える
7

これは Rails がデフォルトで application.html.erb に生成するものです:

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

/public の下にある場合、この方法では favicon.ico が見つかりません。

タグを次のように変更すると、正しく動作します (/public の下に favicon.ico が見つかります)。

<%= favicon_link_tag %>
于 2013-05-19T16:38:24.933 に答える
1

favicon.icoapp/assets/images/に置き、追加します

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

レイアウトファイルで。

これは私にとってはうまくいきます。

于 2017-01-08T11:11:24.020 に答える