1. ホーム
  2. asp.net

[解決済み] ASP.NET MVCでfavicon.icoを処理する。

2022-04-17 21:23:28

質問

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

現在、以下のようにしています。

  • にエントリを追加する。 冒頭 を、私の RegisterRoutes メソッドに追加しました。

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

2つ質問があります。

  • favicon.icoをアプリケーションのルート以外の場所に置く方法はないのでしょうか。と同じレベルにあるのは、かなり不愉快です。 ContentControllers .
  • これは IgnoreRoute("favicon.ico") で説明したように、次のようにすればいいのでしょうか? Phil Haackのブログ記事 . ルート以外のディレクトリにあるfavicon.icoへのリクエストを見たことがないので、これは不要でしょう(しかし、その方法を知っておくのは良いことです)。

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

解決方法は?

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

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

IE以外のブラウザでは、ico以外のファイルを使用することもできます。その場合は、以下の条件文を使って、FFなどにはPNGを、IEにはICOを提供するようにするとよいかと思います。

<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]-->