ASP.NET MVCでfavicon.icoを提供するための最終/最良の推奨事項は何ですか?
私は現在次のことを行っています:
RegisterRoutesメソッドのvery beginにエントリを追加する:
routes.IgnoreRoute("favicon.ico");
Favicon.icoをアプリケーションのルートに配置します(これはドメインのルートにもなります)。
2つの質問があります。
Content
およびControllers
と同じレベルにいるのはとてもむずかしいです。これはIgnoreRoute("favicon.ico")
ステートメントで十分ですか-または Phil Haackのブログ投稿 で説明されているように、次のことも行う必要があります。ルート以外のディレクトリでfavicon.icoへのリクエストを見たことはありません。これにより、これは不要になります(ただし、その方法を知っておくと便利です)。
routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});
ドメインのルートに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]-->
私はクリスからの答えに同意しますが、これが特定の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"/>
1)ファビコンを好きな場所に置いて、このタグをページヘッドに追加できます。
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
一部のブラウザはデフォルトで/favicon.icoからファビコンを取得しようとするため、IgnoreRouteを使用する必要があります。
2)ブラウザが別のディレクトリでファビコンをリクエストすると、エラーが404エラーになり、マスターページの回答1にリンクタグがある場合、ブラウザは目的のファビコンを取得します。
favicon.icoはルートフォルダにあるべきだと思います。それはただそこに属します。
異なるアイコンを提供したい場合は、それをコントローラーに入れてください。出来るよ。そうでない場合-単にルートフォルダに残します。
上記のどれも私にとってはうまくいきませんでした。私はついにfavicon.icoの名前をmyicon.icoに変更してこの問題を解決し、ヘッド<link rel="icon" href="~/myicon.ico" type="image/x-icon" />
でそれを参照しました
また、icoファイルを返すコントローラーを作成し、そのコントローラーを指すルート/favicon.icoを登録することもできます。
Favアイコンファイルを検索する傾向があるfavicon.icoの代わりにこれを使用します
> <link rel="ICON"
> href="@System.IO.Path.Combine(Request.PhysicalApplicationPath,
> "favicon.ico")" />
要求されたパスを使用し、favアイコンファイルと組み合わせて、検索対象の正確なアドレスを取得します
これを使用して、Application_Errorで常に発生するFav.iconエラーを解決しました
必要なことは、startup.csにapp.UseStaticFiles();
を追加するだけです-> public void Configure(IApplicationBuilder app, IHostingEnvironment env)
。
ASP.netコアは、静的ファイルを取得する優れた方法を提供します。それはwwwrootフォルダーを使用しています。 ASP.NET Coreの静的ファイル をお読みください。
<Link />
を使用することはあまり良い考えではありません。誰かがfavicon.icoの各HTMLまたはcshtmlにリンクタグを追加するのはなぜですか?