当前位置:  开发笔记 > 编程语言 > 正文

在ASP.NET MVC中提供favicon.ico

如何解决《在ASP.NETMVC中提供favicon.ico》经验,为你挑选了4个好方法。

如何在ASP.NET MVC中提供favicon.ico的最终/最佳建议是什么?

我目前正在做以下事情:

在RegisterRoutes方法的最开头添加一个条目:

routes.IgnoreRoute("favicon.ico");

将favicon.ico放在我的应用程序的根目录中(这也将是我的域的根目录).

我有两个问题:

有没有办法把favicon.ico放在除我的应用程序的根之外的某个地方.在Content和他们处于同一水平的地方真是太狡猾了Controllers.

这个IgnoreRoute("favicon.ico")陈述是否足够 - 或者我应该如Phil Haack的博客文章中所讨论的那样做.我不知道曾经在根目录以外的任何目录中看到过favicon.ico的请求 - 这会使这个变得不必要(但知道如何去做是很好的).

routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});

AlexC.. 222

我同意Chris的回答,但看到这是一个特定的ASP.NET MVC问题,最好使用Razor语法:


或者传统上

"/>

而不是


总是很方便得到一个没有模棱两可的剪切工作.谢谢. (10认同)

真正.我的回答是说明了"通用"版本(HTML),所以任何人都可以修改以适应他们选择的框架/语言:) (3认同)

使用MVC 4,在这种情况下你不需要Url.Content,因为它会自动处理,你可以使用; (3认同)

@Diego - 是的,rel ="SHORTCUT ICON"是Internet Explorer使用的非标准实现.该空间是W3C标准中的分隔符(请参阅https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link).在Internet Explorer以外的浏览器中,正确的语法是 - 请参阅http://www.jonathantneal.com/blog/understand-the-favicon/更多.显然,您可以使用Razor或Web窗体语法作为上面图标的路径. (2认同)


Chris.. 197

将favicon.ico放在域的根目录中只会影响IE5,IIRC.对于更现代的浏览器,您应该能够包含指向另一个目录的链接标记:


您还可以将非ico文件用于IE以外的浏览器,我可以使用以下条件语句为PNG等提供服务,以及向IE提供ICO:



您需要使用@ Url.Content生成链接,以便它适用于所有环境.请参阅AlexC的回复 (24认同)

是的,对于ASP.NET.我的回答说明了"通用"版本(纯HTML),所以任何人都可以修改以适应他们选择的框架/语言:) (5认同)

IE11了解PNG favicon并不需要条件语句.你应该看到这篇好文章:http://www.jonathantneal.com/blog/understand-the-favicon/ (2认同)


Eduardo Camp.. 20

1)您可以将您的favicon放在您想要的位置,并将此标签添加到您的页面头部


虽然某些浏览器默认会尝试从/favicon.ico获取favicon,因此您应该使用IgnoreRoute.

2)如果浏览器在另一个目录中请求了favicon,它将收到404错误,如果您在主页面的答案1中有链接标记,浏览器将获得您想要的favicon.



1> AlexC..:

我同意Chris的回答,但看到这是一个特定的ASP.NET MVC问题,最好使用Razor语法:


或者传统上

"/>

而不是



总是很方便得到一个没有模棱两可的剪切工作.谢谢.
真正.我的回答是说明了"通用"版本(HTML),所以任何人都可以修改以适应他们选择的框架/语言:)
使用MVC 4,在这种情况下你不需要Url.Content,因为它会自动处理,你可以使用;
@Diego - 是的,rel ="SHORTCUT ICON"是Internet Explorer使用的非标准实现.该空间是W3C标准中的分隔符(请参阅https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link).在Internet Explorer以外的浏览器中,正确的语法是 - 请参阅http://www.jonathantneal.com/blog/understand-the-favicon/更多.显然,您可以使用Razor或Web窗体语法作为上面图标的路径.

2> Chris..:

将favicon.ico放在域的根目录中只会影响IE5,IIRC.对于更现代的浏览器,您应该能够包含指向另一个目录的链接标记:


您还可以将非ico文件用于IE以外的浏览器,我可以使用以下条件语句为PNG等提供服务,以及向IE提供ICO:




您需要使用@ Url.Content生成链接,以便它适用于所有环境.请参阅AlexC的回复
是的,对于ASP.NET.我的回答说明了"通用"版本(纯HTML),所以任何人都可以修改以适应他们选择的框架/语言:)
IE11了解PNG favicon并不需要条件语句.你应该看到这篇好文章:http://www.jonathantneal.com/blog/understand-the-favicon/

3> Eduardo Camp..:

1)您可以将您的favicon放在您想要的位置,并将此标签添加到您的页面头部


虽然某些浏览器默认会尝试从/favicon.ico获取favicon,因此您应该使用IgnoreRoute.

2)如果浏览器在另一个目录中请求了favicon,它将收到404错误,如果您在主页面的答案1中有链接标记,浏览器将获得您想要的favicon.


如果您为网站添加书签,浏览器将会查找.ico文件 - 所以这对此没有帮助.但我想知道浏览器是否记得那个.我只知道在Fiddler,我有时会看到一大堆图标被检索出来.也许这是谷歌工具栏虽然?

4> dmajkic..:

我认为favicon.ico应该在根文件夹中.它就属于那里.

如果你想要不同的图标 - 把它放在控制器中.你可以做到这一点.如果不是 - 只需将其保留在根文件夹中即可.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有