سؤال

ما هو النهائية/أفضل توصية كيفية خدمة فافيكون.ico في ASP.NET MVC?

أنا حاليا القيام بما يلي:

  • إضافة إدخال إلى بداية من RegisterRoutes الطريقة:

    routes.IgnoreRoute("favicon.ico");
    
  • وضع favicon.ico في جذر طلبي (الذي هو أيضا سيكون جذر المجال الخاص بي).

لدي سؤالان:

  • هل هناك طريقة لوضع فافيكون.ico مكان ما عدا جذر التطبيق الخاص بي.إنه رديء جدا يجري هناك على نفس المستوى كما Content و Controllers.
  • هو هذا IgnoreRoute("favicon.ico") بيان كافية أو يجب أيضا القيام بما يلي كما نوقش في بلوق وظيفة من فيل Haack.أنا لست على علم من أي وقت مضى بعد أن شهدت طلب فافيكون.ico في أي دليل آخر من الجذر والتي من شأنها أن تجعل هذا لا لزوم لها (ولكن من الجيد أن تعرف كيفية القيام بذلك).

    routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});
    
هل كانت مفيدة؟

المحلول

وضع favicon.ico في جذر المجال الخاص بك فقط حقا يؤثر على IE5, IIRC.لمزيد من المتصفحات الحديثة يجب أن تكون قادرة على تضمين ارتباط الوسم للإشارة إلى دليل آخر:

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

يمكنك أيضا استخدام غير 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 السؤال سيكون من الأفضل استخدام إما الحلاقة الجملة:

<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) يمكنك وضع favicon الخاص بك حيث تريد إضافة هذه العلامة إلى الصفحة الخاصة بك رئيس

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

على الرغم من أن بعض المتصفحات سوف محاولة للحصول على فافيكون من /favicon.ico بشكل افتراضي ، لذلك يجب استخدام IgnoreRoute.

2) إذا كان المتصفح يجعل طلب فافيكون في دليل آخر سوف تحصل على الخطأ 404 اللي تبونه ما يرام إذا كان لديك علامة الرابط في الرد رقم 1 في الصفحة الرئيسية للمتصفح الحصول على فافيكون تريد.

أعتقد أن فافيكون.ico يجب أن يكون في المجلد الجذر.فقط تنتمي هناك.

إذا كنت ترغب في servere diferent الرموز - وضعه في كونترولر.يمكنك أن تفعل ذلك.لا مجرد ترك ذلك في المجلد الجذر.

أي من أعلاه عملت بالنسبة لي.وأخيرا حل هذه المشكلة عن طريق إعادة تسمية فافيكون.ico إلى myicon.منظمة البن الدولية ، مرجع له في الرأس <link rel="icon" href="~/myicon.ico" type="image/x-icon" />

وينبغي أن يكون من الممكن أيضا لإنشاء وحدة تحكم إرجاع الملف ico وتسجيل مسار /favicon.ico أن نشير إلى أن تحكم.

استخدام هذا بدلا من مجرد فافيكون.ico الذي يميل إلى البحث في fav رمز الملف

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

استخدام المسار المطلوب و تتحد مع الصوت العربي الحر رمز الملف بحيث يحصل دقيقة عنوان البحث عن

باستخدام هذا حل الصوت العربي الحر.رمز الخطأ التي تثار دائما على Application_Error

كل ما عليك القيام به هو إضافة app.UseStaticFiles(); في بدء التشغيل الخاص بك.cs -> public void Configure(IApplicationBuilder app, IHostingEnvironment env).

ASP.net الأساسية يوفر وسيلة ممتازة للحصول على الملفات الثابتة.التي يتم استخدام المجلد wwwroot.يرجى قراءة ملفات ثابتة في ASP.NET الأساسية.

باستخدام <Link /> ليست فكرة جيدة جدا.لماذا شخص ما من شأنه إضافة رابط الوسم على كل HTML أو cshtml عن فافيكون.ico ؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top