[英]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.