Sirviendo favicon.ico en ASP.NET MVC

¿Cuál es la recomendación final / mejor sobre cómo servir favicon.ico en ASP.NET MVC?

Actualmente estoy haciendo lo siguiente:

  • Agregando una entrada al principio de mi método RegisterRoutes:

    routes.IgnoreRoute("favicon.ico"); 
  • Colocando favicon.ico en la raíz de mi aplicación (que también será la raíz de mi dominio).

Tengo dos preguntas:

  • ¿No hay forma de poner el favicon.ico en otro lugar que no sea la raíz de mi aplicación? Es bastante asqueroso estar ahí al mismo nivel que el Content y los Controllers .
  • ¿Es IgnoreRoute("favicon.ico") este IgnoreRoute("favicon.ico") ? O también debería hacer lo siguiente como se explica en una publicación de blog de Phil Haack . No estoy al tanto de haber visto alguna vez un pedido en favicon.ico en un directorio que no sea el directorio raíz, lo que haría innecesario (pero es bueno saber cómo hacerlo).

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

Colocar favicon.ico en la raíz de tu dominio solo afecta realmente a IE5, IIRC. Para navegadores más modernos, debe poder incluir una etiqueta de enlace para apuntar a otro directorio:

  

También puede usar archivos que no sean ico para navegadores que no sean IE, para lo cual tal vez use la siguiente statement condicional para servir un PNG a FF, etc., y un ICO a IE:

   

Estoy de acuerdo con la respuesta de Chris, pero al ver que se trata de una pregunta ASP.NET MVC específica, sería mejor utilizar la syntax de Razor:

  

O tradicionalmente

 "/> 

más bien que

  

1) Puedes poner tu favicon donde quieras y agregar esta etiqueta al encabezado de tu página

  

aunque algunos navegadores intentarán obtener el favicon de /favicon.ico de forma predeterminada, por lo que debe usar IgnoreRoute.

2) Si un navegador realiza una solicitud para el favicon en otro directorio, obtendrá un error 404 que está bien y si tiene la etiqueta de enlace en la respuesta 1 en su página maestra, el navegador obtendrá el favicon que desea.

Creo que favicon.ico debería estar en la carpeta raíz. Simplemente pertenece allí.

Si quieres servir diferentes icons, ponlo en el control. Usted puede hacer eso. Si no, solo déjalo en la carpeta raíz.

También debería ser posible crear un controlador que devuelva el archivo ico y registrar la ruta /favicon.ico para apuntar a ese controlador.

Use esto en lugar de solo favicon.ico que tiende a buscar el archivo de icono favorito

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

Use la ruta solicitada y combine con el archivo de icono de fav para que obtenga la dirección exacta que busca.

Usando esto resolvió el error Fav.icon que se genera siempre en Application_Error

Ninguno de los anteriores funcionó para mí. Finalmente resolví este problema cambiando el nombre de favicon.ico a myicon.ico, y lo mencioné en el encabezado