路径图标的控制器不实现IController,正则表达式

时间:2011-04-28 09:02:34

标签: regex global-asax

我在项目中有例外: 路径'/Content/Images/CustomFavicon.ico'的控制器未找到或未实现IController。

我在这里找到答案:I'm getting a "Does not implement IController" error on images and robots.txt in 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 :(得分:0)

从你的正则表达式我不确定你想要匹配什么。我修改了一下,以便匹配两条路径。

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

请参阅here your modified example

如果您想在捕获组中使用它,请在其周围加上括号,例如:

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