【发布时间】:2010-10-03 23:41:21
【问题描述】:
关于如何在 ASP.NET MVC 中提供 favicon.ico 的最终/最佳建议是什么?
我目前正在做以下事情:
-
在我的 RegisterRoutes 方法的一开始添加一个条目:
routes.IgnoreRoute("favicon.ico"); 将 favicon.ico 放在我的应用程序的根目录中(这也将是我的域的根目录)。
我有两个问题:
- 除了我的应用程序的根目录之外,没有办法将 favicon.ico 放在其他地方。与
Content和Controllers处于同一级别真是令人讨厌。 -
这
IgnoreRoute("favicon.ico")声明是否足够 - 或者我是否也应该按照 a blog post from Phil Haack 中的讨论执行以下操作。我不知道曾经在根目录以外的任何目录中看到过对 favicon.ico 的请求 - 这将使得这变得不必要(但知道如何去做很好)。routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});
【问题讨论】:
-
你的正则表达式应该是 '\.'对于 favicon.ico 中的点,而不仅仅是 '.'。
-
这是我使用的(它考虑了@NathanAldenSr 的建议,支持正斜杠和反斜杠,还允许使用 favicon.png 文件):
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*[/\\])?favicon\.((ico)|(png))(/.*)?" }); -
@BrainSlugs83 - 您的解决方案为我添加了缺少的部分,即斜线......这是一个 .NET vNext 版本(beta-5)。
routes.MapRoute("IgnoreFavicon", "{*favicon}", new { favicon = @"(.*[/\\])?favicon\.((ico)|(png))(/.*)?" }); -
更正,vNext 忽略路线
routes.MapRoute("Ingore", "{*favicon}", new { }, new { favicon = @"(.*[/\\])?favicon\.((ico)|(png))(/.*)?" });注意new {},
标签: asp.net asp.net-mvc razor favicon