繁体   English   中英

带有ASP.net和MVC的Favicon(路由)

[英]Favicon with ASP.net and MVC (Routes)

由于没有/favicon.ico,因此出现404错误。 实际的图标位于/content/favicon.ico。

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

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

它可以工作,但是某些浏览器似乎忽略了它,或者仍然寻找/favicon.ico。

所以,我要问的是一个ASP路由,它将“ /favicon.ico”变成“ /content/favicon.ico”。

一些浏览器在根目录中查找收藏夹图标,因为那是它们过去习惯居住的地方。 由于路由未用于收藏夹图像之类的静态内容,因此添加路由无济于事。 您可以使用IIS重写模块来重写这些请求,也可以针对此特定情况实现自定义处理程序,但是只需将favicon放在根目录中,麻烦就少了-保持简单。

我通过直接在代码中直接重写目标位置来解决了该问题。 无需任何外部重写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/zh-cn/library/system.web.httpserverutility.mappath( v= vs.110).aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM