5

これは奇妙なものです。今日、新しいRails 4アプリケーションを開始し、transfer_functionsというリソースを作成しました。localhost:3000 / transfer_functions / 1のようなURLをヒットすると、その末尾に/favicon.icoが追加され、サーバーコンソールでこのエラーが発生します。

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

何か案は?ありがとう!

アプリは「turbolinks」宝石を使用しています。

アップデート:

私はTwitterBootstrapを使用しており、それぞれのジェネレーターを使用してアプリケーションレイアウトを作成しました。この行をapplication.html.hamlファイルから削除すると、問題が修正されました。

%link(href="favicon.ico" rel="shortcut icon")

それが問題を引き起こした理由がわかりません。

4

3 に答える 3

10

エラーがポップアップした理由は、削除した行が本質的に「現在のディレクトリで favicon.ico を探してください」と言っているからです。投稿した haml コードは、次のような html にレンダリングされます<link href="favicon.ico..."

ファビコンを処理する方法は次のとおりです。

  1. favicon ファイルを次のディレクトリに配置します。your_webapp/app/assets/images/

  2. ドキュメントの head の下に次を編集your_webapp/app/views/layouts/application.html.hamlして追加します。= favicon_link_tag

Rails はアセット パイプラインを使用して、他のサイト アセットと同様にファビコンを提供します。ファイル名だけが必要で、url 内に images フォルダーを含める必要はありません。

ドキュメントに興味がある場合: http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html#method-i-favicon_link_tag

必要なものを追加することもできますrel

于 2013-06-10T02:40:07.700 に答える
0

favicon.icoRails 4 アプリケーションでファイルを使用するにfavicon_link_tagは、レイアウトで を使用します。

通常はapplication.html.slim:

DOCTYPE html
html
  head
    = favicon_link_tag

favicon.icoまた、app/assets/imagesフォルダーに名前の付いたファイルが必要です。


公式文書:

ファビコン ファイルをロードするリンクを返します。最初の引数で別のファイルを指定できます。ヘルパーは、「rel」と「type」をオーバーライドできる追加のオプション ハッシュを受け入れます。

オプション

:rel - このリンクの関係を指定します。デフォルトは「ショートカット アイコン」です。

:type - 自動生成された MIME タイプをオーバーライドします。デフォルトは 'image/vnd.microsoft.icon' です。

于 2014-04-06T01:54:15.623 に答える
0

ファビコンの「古いバージョン」のリクエストについて、ログに 404 が定期的に記録されています。新しいリリースごとに (したがって、新しいプリコンパイルごとに)、一意のハッシュを使用して新しい favicon ファイルが生成されます。これは、誰かがファビコンを保存した場合 (たとえば、iOS ホーム画面にサイトへのショートカットを配置した場合) に壊れているようです: アイコンが失われ、壊れたアイコン シンボルが表示されます。そのため、/asset パイプライン アプローチを放棄し、フォルダーにfavicon_link_tag保存されているファビコンに戻すには、以下を単純に含めます。public

<link href="favicon.ico">
<link href="favicon_ios.png" rel="apple-touch-icon" type="image/png">

または、HAML の場合:

%link{:href => 'favicon.ico'}
%link{:href => 'favicon_ios.png', :rel => 'apple-touch-icon', :type => 'image/png'}
于 2015-04-01T10:45:18.100 に答える