favicon的路线

时间:2013-05-26 13:19:17

标签: asp.net-mvc-4 asp.net-mvc-routing favicon

我有一个.net mvc4应用程序,它具有多重解决方案。 设置方式是它尝试为客户端获取文件,如果没有找到则接收全局文件。

所有这一切都很有效,在我的RouteConfig.cs中,我在最底层有这条线:

routes.Add("FaviconRoute", new Route("favicon.ico", new StaticFileRouteHandler("favicon.ico", "Content", "", true)));

StaticFileRouteHandler是我的自定义类,它加载全局或租户文件,效果很好。 但是我注意到我从elmah(错误处理程序)得到了很多错误:

404 Http The controller for path '/favicon.ico' was not found or does not implement IController.

所以我一直试图解决这个问题但是无法弄明白。如果我在routeconfig中将我的线路放得更高,那么它会干扰其他路线(所有路线都会变成site.com/favicon.ico?param1 ......)

我尝试过使用routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });

但是它没有运行我的代码,因此所有租户都获得了全局文件。

我知道如果你链接它,不再需要在根目录中,但我喜欢这个解决方案,我的静态文件处理程序选择正确的文件,而不是改变文件的路径(我根本不想要代码发送到包含类似〜/ clients / clientA / favicon.ico

的路径的客户端

如果能够通过简单地使我的路线更具体来解决它会很好,所以它只能在根中捕获图标而没有别的。所以我可以把它放在routeconfig.cs

的顶部

最后,如果有人想看到elmah的完整错误,请点击此处:http://db.tt/3QBxIxmb

1 个答案:

答案 0 :(得分:1)

这个答案是否有帮助:https://stackoverflow.com/a/2501352/1586498

routes.Add(new Route("favicon.ico", new StopRoutingHandler()));

“关闭Firefox,清除历史记录,然后重试。”