为什么浏览器在部署后不显示favicon

时间:2010-01-04 11:40:40

标签: html asp.net-mvc favicon

我有一个asp.net mvc web应用程序,它使用了一些favicon.ico。现在当我将它移动到IIS 7时,作为一个应用程序,即使我尝试输入完整地址到favicon,favicon也会停止显示。图标仍然存在;完整地址在浏览器中可以单独查找图标,但不能在应用程序母版页中查找。代码是标准的,与我的其他一些应用程序相同,但它有效。

<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
    <link rel="shortcut icon" href="../../Content/Images/favicon.ico" />
    <link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="../../Scripts/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="../../Scripts/Site.js"></script>
</head>

为什么会出现这种情况?

4 个答案:

答案 0 :(得分:7)

如果我没记错的话,在Internet Explorer中,favicon需要一个绝对 URL。 如果这没有帮助:

  • 也许IIS提供的内容类型错误的图标文件?我认为正确的是image/vnd.microsoft.icon。有关在IIS 7中设置内容类型的方法,请参阅this page
  • 还有许多其他提示on this page

答案 1 :(得分:5)

尝试将您的链接标记更改为:

<link rel="shortcut icon" href="/Content/Images/favicon.ico" type="image/x-icon" />

答案 2 :(得分:2)

尝试添加

<link rel="shortcut icon" href="<full path to favicon.ico>" />

作为<head>标记之后的第一行,这适用于Chrome浏览器和带有IIS7的IE10。

检查以确保您的网站没有多个DOCTYPE文件来分隔IE和Chrome的内容类型。找出答案的一种方法是检查源代码,看看favicon链接是否真的位于<head>标记下。

如果所有其他方法都失败了,您可能需要尝试清除浏览器缓存并仔细检查favicon.ico的文件权限 - 它应具有全局读取权限。

答案 3 :(得分:1)

浏览器对于favicons非常挑剔。他们不会总是在刷新时检索它们,通常他们会随意跳过它们。

最好的方法是将您的favicon放在文档根目录中,以便链接为/favicon.ico。还要确保它是一个真正的Microsoft格式.ICO图标文件。通过父目录..的路径查找 - 就像你在这里一样 - 是在寻找问题。

没有正式的跨服务器和浏览器标准,有关详细信息,请参阅: http://en.wikipedia.org/wiki/Favicon