Favicon与ASP.net和MVC(路线)

时间:2014-12-19 08:35:16

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

由于没有/favicon.ico,我收到404错误。实际图标位于/content/favicon.ico。

我已将此设置为我的html页面:

<link rel="icon" href="@Url.Content("~/content/favicon.ico")" type="image/x-icon" />

它有效,但有些浏览器似乎忽略它,或者无论如何都要寻找/favicon.ico。

所以,我要求的是一条ASP路线转向&#34; /favicon.ico"进入&#34; /content/favicon.ico"。

2 个答案:

答案 0 :(得分:0)

有些浏览器会在根目录中查找favicons,因为那是他们过去按惯例生活的地方。 由于路线不用于像favicon图像这样的静态内容,因此添加路线无济于事。您可以使用IIS重写模块重写这些请求,或者为这个特定情况实现自定义处理程序,但只需将基础知识放在根目录中就可以减少麻烦 - 保持简单。

答案 1 :(得分:0)

我通过直接在我的代码中重写目标位置来解决它。无需外部重写mod,如同类似问题所示。

// Register event-listener in Web-App constructor
this.PreRequestHandlerExecute += new EventHandler(MvcApplication_PreRequestHandlerExecute);

void MvcApplication_PreRequestHandlerExecute(object sender, EventArgs e)
{
    string originalPath = HttpContext.Current.Request.Path.ToLower();
    if (originalPath == "/favicon.ico")
    {
        Context.RewritePath("~/content/favicon.ico");
    }
}

MSDN文档:http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath(v=vs.110).aspx