Контроллер для значка пути не реализует IController, Регулярное выражение - PullRequest
0 голосов
/ 28 апреля 2011

У меня исключение в проекте: контроллер для пути '/Content/Images/CustomFavicon.ico' не найден или не реализует IController.

Я нашел ответ здесь: I 'я получаю сообщение об ошибке «Не реализует IController» для изображений и файла robots.txt в MVC2

, которое дает мне описание моей проблемы и решения для нее.

Однако я слаб нарегулярные выражения, поэтому имеют ту же проблему.Как я могу изменить это выражение для вычисления обоих путей выражения значка, например, ниже:

(/.*)?CustomFavicon.ico?(/.*)

, если мой html-файл ссылки выглядит

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head id="ctl00_Head1">
  <link rel="shortcut icon" HREF="/Content/Images/CustomFavicon.ico">
  <link rel="icon" href="/Content/Images/CustomFavicon.ico" type="image/x-icon"><title>
   Home Page
  </title></head>
<body>

согласно моему тесту (см. Ниже),он находит только одно совпадение, которое также содержит HTML, который я не хочу:

см. здесь мой тест: http://regexr.com? 2tl4a

Это будет использоваться вмой файл Global.aspx:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
  routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
  //ignore route for ico files
  routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?CustomFavicon.ico(/.*)?" });

1 Ответ

0 голосов
/ 28 апреля 2011

Из вашего регулярного выражения я не уверен, что вы хотите соответствовать. Я немного его изменил, чтобы два пути совпали.

(?:\/.*?)CustomFavicon.ico

См. здесь ваш модифицированный пример

Если вы хотите, чтобы это было в группе захвата, тогда заключите в скобки, например:

((?:\/.*?)CustomFavicon.ico)
...