【问题标题】:Asp.net Mvc: why is browser looking for favicon.icoAsp.net Mvc:为什么浏览器在寻找 favicon.ico
【发布时间】:2013-10-29 08:33:34
【问题描述】:

我知道有一个解决方案可以阻止 mvc 框架处理“favicon.ico”请求 (solution),但我不知道它为什么首先要寻找这个图标。

我使用“在文件中查找”>“整个解决方案”搜索 favicon.ico,但没有找到任何内容。

我在网站的html源代码中搜索了favicon.ico,没有找到。

它在哪里?为什么浏览器试图提供它?

【问题讨论】:

标签: c# asp.net asp.net-mvc asp.net-mvc-4


【解决方案1】:

favicon.ico 是一个 convention - 但它是浏览器获取链接、标签等图像的一种方式:

请注意,现在,图像位置也可以在元数据中设置(这很方便,因为它允许图像按页面而不是按域,和/或允许从不同位置提供图像,例如作为 CDN):

<link rel="shortcut icon" href="//cdn.sstatic.net/stackoverflow/img/favicon.ico">
<link rel="apple-touch-icon image_src" href="//cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png">

但是,“/favicon.ico”是后备的,被许多旧浏览器使用 - 或者没有明确指定快捷方式图标。

基本上:去创建一个。

【讨论】:

  • 好吧,我不知道公约。我认为只有在 html 源代码中设置它时,浏览器才会查找图标文件
  • @RaraituL html 中的信息是最近添加的;从历史上看,favicon.ico 比这早了十多年
【解决方案2】:

你最好有一个,因为它是大多数浏览器的标准来寻找 favicon.ico 但是如果你真的不想拥有它并摆脱错误,只需在 RegisterRoutes 类中添加这一行。

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

【讨论】:

    【解决方案3】:

    默认情况下,某些浏览器只会在您网站的根目录中查找 favicon.ico。
    我认为阻止浏览器查找此文件的最简单方法是提供一次图像,然后浏览器将缓存它并停止询问。

    【讨论】:

      【解决方案4】:

      浏览器要求将其设置为页面的图标,位于标题旁边(在标题栏、选项卡、书签菜单中)。

      【讨论】:

        猜你喜欢
        • 2010-12-31
        • 1970-01-01
        • 2011-12-15
        • 1970-01-01
        • 2013-10-06
        • 2010-10-03
        • 2017-07-22
        • 1970-01-01
        相关资源
        最近更新 更多