2017-05-26 4 views
1

Ich habe ein ASP.NET Core MVC/WebAPI-Projekt mit .NET Framework 4.6.2. In meiner Lösung habe ich verschiedene Favicon-Bilder für jede Umgebung (DEV, Staging, PROD). Wenn eine MVC-Seite angezeigt wird, kann ich den Browser ohne Probleme auf das richtige Favicon für diese Umgebung verweisen. Alle API-GET-Aufrufe werden jedoch direkt über einen Webbrowser ausgeführt. Standardmäßig wird favicon.ico im Site-Stammverzeichnis verwendet. Gibt es trotzdem eine Route zu einem konfigurierbaren Wert, so dass ich wählen kann, welcher angezeigt wird?MVC favicon.ico Routing für WebAPI

Antwort

1

Sie können das über Middleware tun. Stellen Sie nur sicher, dass die UseMiddleware<YourCustomMiddlware> in der Startup.cs Configure Methode vor UseStaticFiles() kommt. Auf diese Weise wird es möglich sein, die Anfrage abzufangen und darauf zu antworten, bevor die normale statische Datei-Middleware dies tut.

In Ihrer benutzerdefinierten Middleware müssen Sie nur die URL der Anfrage überprüfen und wenn es für das Favoritensymbol im Stamm ist, dann können Sie überprüfen, ob Sie in Dev, Staging oder PROD laufen und die gewünschte Datei zurückgeben für die Datei, in der Sie sich befinden.

+0

Das würde funktionieren, aber ich hatte gehofft, es könnte getan werden, indem man eine Route mappt. Wenn sich herausstellt, dass dies nicht möglich ist, werde ich dies als Antwort markieren. In beiden Fällen erhalten Sie +1 für die Antwort. – Swazimodo

+0

Das wäre cool, wenn es eine Möglichkeit gäbe, dies per Routenkartierung zu tun. Ich weiß nicht, wie man es via Routen-Mapping macht, wenn es möglich ist. Hoffentlich wird jemand anderes mitspielen, wenn es so gelingen kann. –