Фавикон ASP.net MVC не отображается - PullRequest
1 голос
/ 25 марта 2011

Мне нужна помощь с отображением значка сайта на моем сайте при использовании ASP.NET MVC.

Короче говоря, проблема в том, что всякий раз, когда делается запрос для

запрос не будет обработан.Firefox говорит:

Ошибка кодирования содержимого - Невозможно отобразить страницу, которую вы пытаетесь просмотреть, поскольку она использует недопустимую или неподдерживаемую форму сжатия.

Я пытался игнорироватьмаршрут, использующий следующие игнорирующие стратегии маршрута, очевидно, не все одновременно; -)

routes.Add(new Route("favicon.ico", new StopRoutingHandler()));
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
routes.IgnoreRoute("Content/{file}", new { file = @".*" });

Я могу подтвердить, что он игнорирует маршрут, потому что я подклассифицировал фабрику контроллеров, и она не вызывает CreateController Кикер это, у меня также есть png-версия файла, и он действительно обслуживается.Я также проверил это с помощью fiddler, и всякий раз, когда я пытаюсь запросить ico напрямую через url, я получаю всплывающее окно, которое выглядит примерно так:

Магическое число в заголовке GZip неверно.Убедитесь, что вы передаете поток GZip.

Так что, похоже, что IIS пытается отправить его обратно сжатым?Как мне остановить это поведение / заставить его работать?

Любые идеи?

ОБНОВЛЕНИЕ:

Я понял, web.config былопользовательский модуль http, который работал с физическими файлами и пытался сжать вывод файла.Это не работает, когда у вас есть файлы изображений.: -)

1 Ответ

2 голосов
/ 25 марта 2011

Почему вы добавляете это как маршрут ??

Просто добавьте это в заголовок своей главной страницы:

  <link rel="shortcut icon" media="all" type="image/x-icon" href="<%= Url.Content("~/favicon.ico") %>" /> 
...