编辑:如果我在MVC中通过完全标准的方式提供文件,这仍然会发生.
每次请求我的图片时,Google Chrome也会搜索我的favicon.ico.
为了避免不必要的讨论其他事情“我也应该关心”,让我们假设我不关心缓存在这个例子,我将永远返回HTTP响应200与该文件.
在我的控制器中,我返回以下内容:
return File(fileBytes,contentType);
检查Fiddler 2后,会产生以下响应:
HTTP/1.1 200 OK
Cache-Control: public
Content-Type: image/gif
ETag: oYu19wKo+KEHkyxZQ2WXAA==
Server: Microsoft-IIS/7.0
X-AspNetMvc-Version: 1.0
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
Date: Tue,16 Jun 2009 18:48:45 GMT
Content-Length: 29344
相比之下,当我要求(首次)Google徽标时,这是Google在Fiddler中的回应:
HTTP/1.1 200 OK
Content-Type: image/gif
Last-Modified: Wed,07 Jun 2006 19:42:34 GMT
Date: Tue,16 Jun 2009 18:50:54 GMT
Expires: Wed,16 Jun 2010 18:50:54 GMT
Cache-Control: public,max-age=31536000
Server: gws
Content-Length: 8706
Age: 2
但是,在Chrome中找到我的形象之后,Chrome试图找到我的favicon.ico.请求Google徽标后不要尝试.
有什么想法可能会发生吗?从我对HTML的理解,答案必须在响应标题中,因为这是所有的客户端都要继续吗?请纠正我!
编辑2:好像很多人完全误解了这个问题.问题不在于MVC中缺少一个图标和错误的请求 – 这是当一个图像正在加载时请求一个图标的问题,内容类型为“IMAGE / JPEG”,而不是具有内容的网页“TEXT / HTML”的类型!