【发布时间】:2011-06-23 04:46:54
【问题描述】:
我正在构建一个网页,其中包含一堆图片,这些图片都来自他们 Limelight CDN 上的 Rackspace Cloudfiles。有时页面会完成加载,包括图片,Chrome/Webkit 将无法渲染一些图片。
Chrome 不会在它们的位置呈现“损坏的图像”,如果我检查 Inspector 中的“资源”选项卡,它们会被列出并且数据已全部加载。未渲染的图像显示的信息与正确渲染的图像相同。
这通常发生在我前进一页然后返回(通过历史记录)时。如果我重新加载页面,它仍然存在,除非我进行硬刷新(Chrome 中的⌘⇧R),然后它们都会再次正常显示。
我没有在 JavaScript 中加载图像或任何奇怪的东西,也没有任何隐藏图像的 CSS。这仅在 Chrome 中发生,据我所知,在隐身模式下不会发生。
任何想法是什么导致了这个?如果是错误,我该如何向 Chrome 团队报告?
更新
我检查了 Inspector 的 Network 选项卡中的标题,结果发现对于渲染的图像,Chrome 只显示它的标题元数据,如下所示:
对于没有正确呈现的图像,元数据会与带有304 Not Modified 状态的完整请求和响应标头一起显示。
这种情况仍在发生。在多台计算机上,在多个网站上。在 Google 支持论坛上也有关于此事件的 thread。
【问题讨论】:
-
这很奇怪,我猜它与缓存有关。您是否在另一台计算机上测试过您的页面? idk 正是我首先想到的。
-
如果在隐身模式下没有发生这种情况,那肯定是缓存。
-
当图片不显示时,它们的 Content-Types 是否正确?我想知道这是否与 CDN 的负载平衡偶尔会碰到一些配置错误的服务器有关...
-
这就是我的想法,特别是考虑到硬刷新可以修复它。尽管如此,我对 Webkit/Chromium 的内部结构还不够熟悉,无法知道这是否只是我的环境中的某些东西(损坏的缓存文件或导致问题的扩展),还是需要报告的错误。
-
这绝对是缓存问题。他们(Limelight)正在做的是将 Expires 标头设置为很长一段时间(比如一年后)。
标签: html google-chrome webkit