网站图标无法显示

14

我在ASP.NET项目中有一个网站图标,但它没有显示出来。我的主控页面位于~/MasterPages/MasterPage.master,其中包含了这个网站图标。我的标记如下:

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

网站图标(favicon)位于项目根目录。尺寸为16x16,深度为32位。我已经清除了浏览器缓存和重启过了,但仍然没有生效。您有什么建议吗?


1
文件是否被正确访问?根据文件结构,您可能不需要在favicon.ico前面加上/ - Jason Gennaro
1
你能否直接在浏览器中导航到 favicon.ico 文件?例如 http://projectroot/favicon.ico - Chev
1
当我直接点击网站图标时,在Chrome浏览器中会出现以下错误:此网页有重定向循环 访问http://root/login.aspx?returnurl=%2ffavicon.ico 的网页导致了太多的重定向。清除此站点的cookie或允许第三方cookie可能会解决问题。如果没有解决,可能是服务器配置问题,而不是您计算机的问题。 - Halcyon
1
ctrl f5 对我很管用。 - Bryan Mudge
7个回答

20

尝试放置一个~并将link元素设置为runat=server

<link runat="server" rel="shortcut icon" href="~/favicon.ico" type="image/x-icon" />
<link runat="server" rel="icon" href="~/favicon.ico" type="image/ico" />

这也需要在页面的<head>部分完成。


1
如果我没记错的话,在<link>标签上使用~即使没有runat="server"也可以工作。 - BrunoLM
1
@BrunoLM - 需要虚拟路径映射,因此需要在托管代码中运行,以解释站点的虚拟路径。 - Adam Tuliper
1
添加波浪符“`”和runat =“server”属性解决了它。谢谢! - Halcyon
1
如果我的当前页面在一个文件夹中怎么办? ~路径将被解析为http://example.com/Myfolder/favicon.ico。 - Germstorm
1
我对从realfavicongenerator.net获取的代码进行了更改,这解决了我所有的问题。(使用MVC asp.net) - LJ Codes
1
<head>标签中引用资源是关键部分。这很容易被忘记,因为大多数指南都会忽略它,并且asp.net站点通常将head标签包含在_Layout.cshtml部分中。 - FoxDeploy

10
尝试去掉类型,清除浏览器缓存,手动访问网站图标地址并添加一些参数。这样应该可以解决问题。也许你可以告诉我你的网站地址,然后我会查看是否有显示。

3
"给它添加一些参数" 挽救了我的一天。 - Michal Hosala

6

右键单击解决方案,选择属性。在应用程序 > 资源下将默认图标更改为您选择的图标。


4

2
回复内容存在敏感词^**$/x-icon" />


2
在.NET Core应用程序(MVC模板)中,尝试将favicon.ico文件移动到lib文件夹而不是wwwroot文件夹。

1

我在ASP.NET中使用了这种方法:

<link rel="shortcut icon" type="image/ico" href="~/favicon.png">

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接