ASP.NET MVC での favicon.ico の提供
-
20-08-2019 - |
質問
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(/.*)?"});
解決
ドメインのルートにfavicon.icoを置くとだけは本当にIE5、IIRCに影響を与えます。より近代的なブラウザの場合、あなたは別のディレクトリを指すようにリンクタグを含めることができる必要があります:
<link rel="SHORTCUT ICON" href="http://www.mydomain.com/content/favicon.ico"/>
また、IEに私は多分など、FFにPNGを提供するために、次の条件付きステートメントを使用すると思いれるIE以外のブラウザ用の非ICOファイルを、使用、および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]-->
他のヒント
私はクリスからの回答に同意するが、これ見て、カミソリの構文のいずれかを使用する方が良いでしょう特定のASP.NET MVCの質問があります:
<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" />
一部のブラウザでは、IgnoreRouteを使用する必要がありますので、デフォルトで/favicon.icoからファビコンを取得しようとするもののます。
2)ブラウザが別のディレクトリにファビコンを要求する場合は、404エラーウィッヒが細かい取得し、あなたのマスターページに解答1内のリンクタグを持っている場合、ブラウザは、あなたが望むファビコンを取得します。
私は思うの のfavicon.icoをののルートフォルダにする必要があります。それはちょうどそこに属します。
あなたがdiferentアイコンをservereしたい場合は - のcontrolerにそれを置きます。 出来るよ。そうでない場合 - ちょうどルートフォルダにそれを残す
。私のために働いた上記のなし。私は最終的にmyicon.ico、ヘッド<link rel="icon" href="~/myicon.ico" type="image/x-icon" />
でそれを参照するためにfavicon.icoをリネームすることで、この問題を解決します。
また、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での静的ファイルをお読みくださいコアのます。
<Link />
を使用して非常に良いアイデアではありません。なぜ誰かがfavicon.icoを各HTMLまたはCSHTMLにリンクタグを追加するのでしょうか?