site - Обслуживание favicon.ico в ASP.NET MVC




asp.net core favicon (5)

1) Вы можете поместить свой значок там, где хотите, и добавить этот тег в свою страницу.

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

хотя некоторые браузеры будут пытаться получить favicon из /favicon.ico по умолчанию, поэтому вы должны использовать IgnoreRoute.

2) Если браузер делает запрос на значок в другом каталоге, он получит ошибку 404, которая будет прекрасна, и если у вас есть тег ссылки в ответе 1 на главной странице, браузер получит желаемую вами иконку.

Какова конечная / лучшая рекомендация по использованию favicon.ico в ASP.NET MVC?

В настоящее время я делаю следующее:

  • Добавление записи в начало моего метода RegisterRoutes:

    routes.IgnoreRoute("favicon.ico");
    
  • Размещение favicon.ico в корне моего приложения (которое также станет корнем моего домена).

У меня есть два вопроса:

  • Невозможно поместить favicon.ico где-то, кроме корня моего приложения. Это довольно нехорошо, прямо на том же уровне, что и Content и Controllers .
  • Является ли это IgnoreRoute("favicon.ico") достаточным - или я должен также сделать следующее, как описано в сообщении блога от Фила Хаака . Я не знаю, что когда-либо видел запрос на favicon.ico в любом каталоге, кроме корня, что сделало бы это ненужным (но хорошо знать, как это сделать).

    routes.IgnoreRoute("{*favicon}", new {[email protected]"(.*/)?favicon.ico(/.*)?"});
    

Используйте это вместо просто favicon.ico, который стремится искать файл fav icon

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

Используйте запрошенный путь и объедините его с файлом значка fav, чтобы он получал точный адрес, который

Используя эту проблему, исправлена ​​ошибка Fav.icon, которая всегда поднимается на Application_Error


Размещение favicon.ico в корне вашего домена действительно влияет только на IE5, IIRC. Для более современных браузеров вы можете включить тег ссылки, чтобы указать на другой каталог:

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

Вы также можете использовать файлы не-ico для браузеров, отличных от IE, для которых я мог бы использовать следующий условный оператор для работы 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]-->

Также должно быть возможно создать контроллер, который возвращает файл ico и зарегистрировать маршрут /favicon.ico, чтобы указать на этот контроллер.


Я согласен с ответом Криса, но, видя, что это конкретный вопрос ASP.NET MVC, было бы лучше использовать синтаксис Razor:

<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"/>




favicon