我有一个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>
为什么会出现这种情况?
答案 0 :(得分:7)
如果我没记错的话,在Internet Explorer中,favicon需要一个绝对 URL。 如果这没有帮助:
image/vnd.microsoft.icon
。有关在IIS 7中设置内容类型的方法,请参阅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