260

ASP.NET MVC で favicon.ico を提供する方法の最終的/最良の推奨事項は何ですか?

現在、次のことを行っています。

  • RegisterRoutes メソッドの最初にエントリを追加します。

    routes.IgnoreRoute("favicon.ico");
    
  • アプリケーションのルート (ドメインのルートにもなります) に favicon.ico を配置します。

2 つの質問があります。

  • favicon.ico をアプリケーションのルート以外の場所に置く方法はありませんか。Contentと同じレベルにいるのはかなり厄介Controllersです。
  • このIgnoreRoute("favicon.ico")ステートメントで十分ですか? または、Phil Haack のブログ投稿で説明されているように、次のことも行う必要があります。ルート以外のディレクトリで favicon.ico へのリクエストを見たことはありません-これは不要になります(ただし、その方法を知っておくとよいでしょう)。

    routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});
    
4

9 に答える 9

233

Chris からの回答に同意しますが、これは特定の ASP.NET MVC の質問であるため、Razor 構文を使用することをお勧めします。

<link rel="icon" href="@Url.Content("~/content/favicon.ico")"/>

または伝統的に

<link rel="icon" href="<%= Url.Content("~/content/favicon.ico") %>"/>

それよりも

<link rel="icon" href="http://www.mydomain.com/content/favicon.ico"/>
于 2012-03-27T15:43:04.807 に答える
207

ドメインのルートに favicon.ico を配置すると、実際には IE5、IIRC にのみ影響します。最新のブラウザでは、別のディレクトリを指すリンク タグを含めることができるはずです。

<link rel="SHORTCUT ICON" href="http://www.mydomain.com/content/favicon.ico"/>

IE 以外のブラウザーで非 ico ファイルを使用することもできます。その場合、次の条件ステートメントを使用して、PNG を FF などに、ICO を IE に提供します。

<link rel="icon" type="image/png" href="http://www.mydomain.com/content/favicon.png" />
<!--[if IE]>
<link rel="shortcut icon" href="http://www.mydomain.com/content/favicon.ico" type="image/vnd.microsoft.icon" />
<![endif]-->
于 2009-01-28T11:19:41.027 に答える
22

1) 好きな場所にファビコンを配置し、このタグをページ ヘッドに追加できます。

<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />

一部のブラウザーはデフォルトで /favicon.ico から favicon を取得しようとするため、IgnoreRoute を使用する必要があります。

2) ブラウザーが別のディレクトリでファビコンを要求すると、404 エラーが発生しますが、マスター ページの回答 1 にリンク タグがある場合、ブラウザーは必要なファビコンを取得します。

于 2009-01-28T11:15:31.927 に答える
7

favicon.icoはルート フォルダーに配置する必要があると思います。それはただそこに属しています。

異なるアイコンを提供したい場合は、それをコントローラーに入れてください。出来るよ。そうでない場合は、ルートフォルダーに残してください。

于 2009-01-28T11:18:51.357 に答える
2

また、ico ファイルを返すコントローラーを作成し、そのコントローラーを指すルート /favicon.ico を登録することも可能です。

于 2009-12-24T08:02:20.343 に答える
2

あなたがする必要があるのはapp.UseStaticFiles();、startup.cs ->を追加することだけですpublic void Configure(IApplicationBuilder app, IHostingEnvironment env)

ASP.net コアは、静的ファイルを取得する優れた方法を提供します。それは wwwroot フォルダーを使用しています。ASP.NET Core の静的ファイルをお読みください。

を使用するの<Link />はあまり良い考えではありません。favicon.ico の各 HTML または cshtml に link タグを追加するのはなぜですか?

于 2018-11-24T14:13:30.213 に答える
0

favアイコンファイルを検索する傾向があるfavicon.icoの代わりにこれを使用してください

> <link rel="ICON" 
> href="@System.IO.Path.Combine(Request.PhysicalApplicationPath,
> "favicon.ico")" />

要求されたパスを使用し、fav アイコン ファイルと組み合わせて、検索対象の正確なアドレスを取得します。

これを使用すると、常に Application_Error で発生する Fav.icon エラーが解決されました

于 2014-03-11T13:27:28.310 に答える