尽管有正确的缓存标头,但不会缓存。似乎有200OK响应下载两次

时间:2014-06-02 18:01:37

标签: google-chrome http caching spdy

我在我的网站上使用Glyphicons,它们作为Bootstrap 3的一部分。在查看开发控制台的网络选项卡时,我意识到它们加载的时间较晚(当浏览器的解析器到达时),并且有空间通过更快地将该元素添加到浏览器来提高性能。

在Chrome中,可以通过以下方式执行此操作:

<link rel="subresource" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.1.1/fonts/glyphicons-halflings-regular.woff">

在文档的<HEAD>中。

我看到DOMContentLoaded时间增加的方式表明此文件加载了两次(屏幕截图中的第5行,第2行到最后一行)。我的怀疑进一步证实它是由HTTP响应代码(200)加载两次,它告诉我它来自远程服务器两次,并且没有从Cache中获取。

您可以在此处查看开发控制台的外观: http://oi60.tinypic.com/2t9n7.jpg (如果tinypic发生故障,请点击我的保管箱:https://www.dropbox.com/s/vlwgywatg9rsg8v/subresourcenotcached.png

该资产的HTTP版本上的缓存标头是,但值得注意的是,开发控制台上的网络选项卡输出对于HTTP和HTTPS看起来都是相同的。

HTTP/1.1·200·OK(CR)(LF)
Server:·cloudflare-nginx(CR)(LF)
Date:·Mon,·02·Jun·2014·17:49:06·GMT(CR)(LF)
Content-Type:·application/octet-stream(CR)(LF)
Content-Length:·23320(CR)(LF)
Connection:·close(CR)(LF)
Last-Modified:·Thu,·13·Feb·2014·22:45:07·GMT(CR)(LF)
Expires:·Sat,·23·May·2015·17:49:06·GMT(CR)(LF)
Cache-Control:·public,·max-age=30672000(CR)(LF)
Access-Control-Allow-Origin:·*(CR)(LF)
CF-Cache-Status:·HIT(CR)(LF)
Accept-Ranges:·bytes(CR)(LF)
CF-RAY:·13457c53f04d0378-LAX(CR)(LF)
(CR)(LF)

是否有人了解如何将此.woff文件缓存并正确使用Chrome中的LINK SUBRESOURCE功能?

1 个答案:

答案 0 :(得分:1)

这是当前Chrome中的一个错误。看看https://code.google.com/p/chromium/issues/detail?id=312327