Frage

Was ist die letzte / beste Empfehlung für wie in ASP.NET MVC dienen favicon.ico?

ich zur Zeit tue folgendes:

  • einen Eintrag in den Hinzufügen von Anfang an meiner RegisterRoutes Methode:

    routes.IgnoreRoute("favicon.ico");
    
  • Platzierung in der Wurzel meiner Anwendung favicon.ico (was auch die Wurzel meiner Domain sein wird).

Ich habe zwei Fragen:

  • Gibt es keine Möglichkeit, die favicon.ico irgendwo anders als die Wurzel meiner Anwendung zu bringen. Es ist ziemlich eklig genau dort auf dem gleichen Niveau wie Content und Controllers zu sein.
  • Ist das IgnoreRoute("favicon.ico") Aussage ausreichend - oder soll ich tun, auch die folgenden, wie in eine Blog-Post von Phil Haack . Ich bin mir nicht bewusst, jemals eine Anfrage in einem beliebigen Verzeichnis anders als die Wurzel favicon.ico gesehen zu haben -. Die diese überflüssig machen würde (aber es ist gut zu wissen, wie es zu tun)

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

Lösung

in der Wurzel Ihrer Domain nur Platzierung favicon.ico wirklich wirkt sich IE5, IIRC. Für modernere Browser sollten Sie in der Lage sein, einen Link-Tag enthält, um ein anderes Verzeichnis zu zeigen:

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

Sie können auch nicht-ICO-Dateien für anderen Browser als IE verwenden, für die ich vielleicht die folgende bedingte Anweisung verwenden würde ein PNG-FF, etc. zu dienen, und ein 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]-->

Andere Tipps

ich mit der Antwort von Chris einverstanden ist, aber da es sich um eine spezifische ASP.NET MVC Frage, es wäre besser entweder Razor-Syntax zu verwenden:

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

oder traditionell

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

statt

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

1) Sie können Ihre Favicon setzen, wo Sie wollen und diesen Tag zu Ihrer Seite Kopf hinzufügen

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

obwohl einige Browser wird versuchen, das Favicon von /favicon.ico standardmäßig zu bekommen, so sollten Sie die IgnoreRoute verwenden.

2) Wenn ein Browser eine Anforderung für das Favicon in ein anderes Verzeichnis macht es wird ein Fehler 404 Wich ist in Ordnung bekommen und wenn Sie den Link-Tag in Antwort 1 in der Masterseite wird der Browser das Favicon Sie wollen.

Ich denke, dass favicon.ico in Stammordner sein sollte. Es gehört einfach da.

Wenn Sie diferent Symbole servere wollen - es in Controler setzen. Du kannst das. Wenn nicht - lassen Sie es nur im Stammordner

.

Keine der oben für mich gearbeitet. Ich löste dieses Problem endlich durch favicon.ico Umbenennung myicon.ico und es im Kopf <link rel="icon" href="~/myicon.ico" type="image/x-icon" /> Referenz

Es sollte auch möglich sein, einen Controller zu erstellen, die ICO-Datei zurückgibt und die Route /favicon.ico zu diesem Controller-zu-Punkt registrieren.

Verwenden Sie diese, anstatt nur die favicon.ico, die für die FAV-Icon-Datei

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

Mit dem angeforderten Pfad und mit der FAV-Icon-Datei kombinieren, so dass es die genaue Adresse bekommt, die seine Suche nach

Mit diesem die Fav.icon Fehler behoben, der immer auf Application_Error angehoben

Alles, was Sie tun müssen, ist app.UseStaticFiles(); in Ihrem startup.cs hinzuzufügen. -> public void Configure(IApplicationBuilder app, IHostingEnvironment env)

ASP.net Kern bietet eine hervorragende Möglichkeit, statische Dateien zu erhalten. Das wird mit dem Wwwroot-Ordner. Bitte lesen Sie Statische Dateien in ASP.NET Kern .

die <Link /> Verwendung ist nicht eine sehr gute Idee. Warum sollte jemand den Link-Tag auf jeder HTML oder cshtml für die favicon.ico hinzufügen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top