Sim*_*ver 251 asp.net favicon asp.net-mvc razor
如何在ASP.NET MVC中提供favicon.ico的最终/最佳建议是什么?
我目前正在做以下事情:
在RegisterRoutes方法的最开头添加一个条目:
routes.IgnoreRoute("favicon.ico");
Run Code Online (Sandbox Code Playgroud)将favicon.ico放在我的应用程序的根目录中(这也将是我的域的根目录).
我有两个问题:
Content和他们处于同一水平的地方真是太狡猾了Controllers.这个IgnoreRoute("favicon.ico")陈述是否足够 - 或者我应该如Phil Haack的博客文章中所讨论的那样做.我不知道曾经在根目录以外的任何目录中看到过favicon.ico的请求 - 这会使这个变得不必要(但知道如何去做是很好的).
routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});
Run Code Online (Sandbox Code Playgroud)Ale*_*exC 222
我同意Chris的回答,但看到这是一个特定的ASP.NET MVC问题,最好使用Razor语法:
<link rel="icon" href="@Url.Content("~/content/favicon.ico")"/>
Run Code Online (Sandbox Code Playgroud)
或者传统上
<link rel="icon" href="<%= Url.Content("~/content/favicon.ico") %>"/>
Run Code Online (Sandbox Code Playgroud)
而不是
<link rel="icon" href="http://www.mydomain.com/content/favicon.ico"/>
Run Code Online (Sandbox Code Playgroud)
Chr*_*ris 197
将favicon.ico放在域的根目录中只会影响IE5,IIRC.对于更现代的浏览器,您应该能够包含指向另一个目录的链接标记:
<link rel="SHORTCUT ICON" href="http://www.mydomain.com/content/favicon.ico"/>
Run Code Online (Sandbox Code Playgroud)
您还可以将非ico文件用于IE以外的浏览器,我可以使用以下条件语句为PNG等提供服务,以及向IE提供ICO:
<link rel="icon" type="image/png" href="http://www.mydomain.com/content/favicon.png" />
<!--[if IE]>
<link rel="shortcut icon" href="http://www.mydomain.com/content/favicon.ico" type="image/vnd.microsoft.icon" />
<![endif]-->
Run Code Online (Sandbox Code Playgroud)
Edu*_*añó 20
1)您可以将您的favicon放在您想要的位置,并将此标签添加到您的页面头部
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
Run Code Online (Sandbox Code Playgroud)
虽然某些浏览器默认会尝试从/favicon.ico获取favicon,因此您应该使用IgnoreRoute.
2)如果浏览器在另一个目录中请求了favicon,它将收到404错误,如果您在主页面的答案1中有链接标记,浏览器将获得您想要的favicon.
以上都不适合我。我最终通过将 favicon.ico 重命名为 myicon.ico 解决了这个问题,并在 head 中引用它<link rel="icon" href="~/myicon.ico" type="image/x-icon" />
| 归档时间: |
|
| 查看次数: |
119221 次 |
| 最近记录: |