为什么Chrome在我从ASP.NET MVC提供文件时搜索我的favicon.ico?

14 浏览
0 Comments

为什么Chrome在我从ASP.NET MVC提供文件时搜索我的favicon.ico?

我在MVC中有一个控制器,从数据库中提供图像。\n编辑:如果我完全使用标准方法在MVC中提供文件,这个问题仍然存在。\n每次我请求我的图像时,Google Chrome也会搜索我的favicon.ico。\n为了避免关于其他我“应该关心的事情”的不必要讨论,让我们假设在这个例子中我不关心缓存,我将始终返回带有文件的HTTP响应200。\n在我的控制器中,我返回以下内容:\n

return File(fileBytes, contentType);

\n在检查Fiddler 2之后,生成以下响应:\n

\nHTTP/1.1 200 OK
\n Cache-Control: public
\n Content-Type: image/gif
\n ETag: oYu19wKo+KEHkyxZQ2WXAA==
\n Server: Microsoft-IIS/7.0
\n X-AspNetMvc-Version: 1.0
\n X-AspNet-Version: 2.0.50727
\n X-Powered-By: ASP.NET
\n Date: Tue, 16 Jun 2009 18:48:45 GMT
\n Content-Length: 29344
\n

\n相比之下,这是我第一次请求Google标志时在Fiddler中从Google获得的响应:\n

\nHTTP/1.1 200 OK
\n Content-Type: image/gif
\n Last-Modified: Wed, 07 Jun 2006 19:42:34 GMT
\n Date: Tue, 16 Jun 2009 18:50:54 GMT
\n Expires: Wed, 16 Jun 2010 18:50:54 GMT
\n Cache-Control: public, max-age=31536000
\n Server: gws
\n Content-Length: 8706
\n Age: 2
\n

\n然而,在Chrome中获取我的图像后,Chrome尝试找到我的favicon.ico。但是在请求Google标志后,它不会尝试这样做。\n有任何想法为什么会发生这种情况吗?根据我对HTML的理解,答案必须在响应头中,因为客户端只有这些信息吗?请纠正我!\n编辑2:似乎很多人完全误解了问题。问题不是缺少favicon和MVC中的错误请求-问题是在仅加载图像的情况下请求favicon,其内容类型为“IMAGE/JPEG”,而不是内容类型为“TEXT/HTML”的网页!!

0
0 Comments

为什么Chrome在我从ASP.NET MVC提供文件时搜索我的favicon.ico?

问题原因:

- Chrome会自动搜索网站的favicon.ico文件,用作网站的图标显示。

- 如果网站没有提供favicon.ico文件,Chrome会不断地尝试搜索,以查找该文件。

解决方法:

- 可以尝试在网站根目录下放置一个真实的16x16像素的icon文件,供Chrome显示。

- 如果只放置一个空的favicon.ico文件,Chrome仍然会继续搜索该文件,因此建议放置一个真实的icon文件。

- 确保favicon.ico文件的路径和文件名正确,以便Chrome能够正确地找到并显示该文件。

以下是示例代码:


以上是对问题的原因和解决方法进行了整理和总结。

0
0 Comments

Chrome搜索favicon.ico的原因是一个已知的、长期存在的问题,这个问题在Chrome的bug跟踪系统中有记录。如果希望尽快解决这个问题,可以在该bug的页面上点击星星标志,更多人关注该问题可能会增加其优先级并可能更快地解决该问题。

更新1:截至2013年5月15日,这个问题似乎已经在29版本中修复。可以撤销所有的hack和workaround。

更新2(2015年1月):根据同一个问题链接的信息,对于一些用户来说,这个问题仍然存在。

原文链接:http://crbug.com/39402

0
0 Comments

在使用ASP.NET MVC提供文件时,Chrome会搜索favicon.ico文件。这可能是由于Chrome浏览器的一个错误导致的。以下是解决该问题的方法:

1. 验证是否是Chrome浏览器引起的问题。可以通过在日志中记录请求浏览器来确定是哪个浏览器发出的请求。

2. 如果确认是Chrome浏览器引起的问题,可以尝试更新Chrome浏览器到最新版本,因为该问题在较新版本中可能已经修复。

3. 如果更新Chrome浏览器后仍然存在问题,可以尝试在ASP.NET MVC应用程序中添加一个空的favicon.ico文件,以满足Chrome浏览器的请求。

4. 如果不希望为Chrome浏览器添加一个空的favicon.ico文件,可以尝试在应用程序的全局.asax文件中添加以下代码,以忽略对favicon.ico文件的请求:

protected void Application_BeginRequest()
{
    if (Request.Url.AbsolutePath.EndsWith("/favicon.ico"))
    {
        Response.StatusCode = 404;
        Response.End();
    }
}

这段代码会在每个请求开始时检查请求的URL是否以"/favicon.ico"结尾,如果是,则返回404错误。这样可以避免Chrome浏览器不断请求favicon.ico文件。

请注意,以上解决方法可能并不适用于所有情况,具体解决方法可能因个人情况而异。如果问题仍然存在,建议咨询Chrome浏览器的官方支持或寻求其他开发者的帮助。

0