ASP.NET MVC 3 :解决 Google Chrome 读取 favicon.ico 错误

今天在使用 ASP.NET MVC 3 时遇到一个小问题,由于在 Google Chrome 中浏览网页时会自动请求 favicon.ico ,所以当没有为网站添加 favicon.ico 时会出现将"favicon.ico" 作为参数传递。

我们可以在 ASP.NET MVC 3 路由注册方法 RegisterRoutes() 中添加如下代码,这样当请求 favicon.ico 时 .net 不会做任何处理。

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

可见,为了阻止返回 404 错误代码,为网站添加一个 favicon.ico 是个不错的做法,当然作为开发人员在调试时可以先使用一个替代品,如我会使用 Google 的 favicon.ico。方法为在_Layout.cshtml页面中添加:

<title>@ViewBag.Title</title>
<link rel="shortcut icon" href="http://www.google.com/favicon.ico" />

等项目正式上线时,再将它替换即可,这样就解决了 Google Chrome 中调试 ASP.NET MVC 3 项目时,由于 favicon.ico 不存在时的问题,希望对你有所帮助!