2009-12-30 3 views
14

Ich benutze eine benutzerdefinierte ControllerFactory (um Castle Windsors IOC zum Erstellen von Controllern zu verwenden), und ich stelle fest, dass es Anfragen erhält, einen Controller für "favicon.ico" zu erstellen. Ich habe eine favicon.ico-Datei in meinen Inhaltsordner gestellt, bekomme aber immer noch diese Anfragen.ASP.Net MVC - Warum wird ein Controller für favicon.ico erstellt?

Wie kann ich dies beheben und statische Inhalte bereitstellen, ohne zu versuchen, Controller zu erstellen?

+1

Dies wurde mir geschieht, weil Browser für das favicon.ico in Ihre Wurzel zu suchen versuchen und aus irgendeinem Grund asp.net denkt, dass es ein Controller ist, und erfüllte meine Protokolle mit dem Fehler "favicon.ico Controller nicht gefunden", weiß ich nicht, ob das ist, worüber Sie sprechen. – ryudice

Antwort

28

Fügen Sie die folgende Route:

routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" }); 
+1

Warum nicht nur 'routes.IgnoreRoute (" favicon.ico ")'? – ANeves

+2

Die vorgeschlagene IgnoreRoute ignoriert favicon.ico in einem beliebigen Ordner, nicht nur im Stammordner. Ich denke, es kommt von Phil Haacks Blog (http://haacked.com/archive/2008/07/14/make-routing-ignore-requests-for-a-file-extension.aspx) –

+1

Oh, und es sollte sein \. für die. im regulären Ausdruck, d. h. favicon \ .ico –