HTML5清单缓存问题

时间:2010-01-12 10:48:35

标签: caching html5 manifest

我正在尝试缓存(供离线使用)我的webbapplication的某些部分但是每当我缓存css文件或js文件时,它们从缓存加载时变为空(在Safari和Firefox中检查)

什么可能导致这个问题?我确保清单文件正常工作,我已尝试使用相对路径和绝对路径,包括页面域。

如果我排除所有脚本和css文件,它们加载得很好,但是一旦我将它们放入离线缓存中,它们就会被加载为空文件。

其他离线应用程序在我测试过的平台上运行正常,因此我的设置一定存在问题。如果这对事物有任何影响,那么这些页面就会在linux上运行一个apache服务器。

请求css文件的标题:

Date    Tue, 12 Jan 2010 11:06:41 GMT
Server  Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.4 with Suhosin-Patch
Last-Modified   Thu, 15 Oct 2009 11:53:16 GMT
Etag    "36625c-1da0-475f7ecbca300"
Accept-Ranges   bytes
Content-Length  7584
Content-Type    text/css

当然没有启用离线缓存。

1 个答案:

答案 0 :(得分:0)

发布CSS文件的回复标题。最可能的原因是文件即将过期。

看起来有点奇怪的是有Etag而不是Expires或缓存控制头。它可能会混淆脱机缓存。尝试在服务器配置中明确设置文档过期规则,ExpiresDefault for Apache。

Etag的规则说,如果Etag在后续请求中匹配,则服务器(在这种情况下是您的离线缓存)应该发送304(使用您已有的)和NO DATA。但是,如果文档不在浏览器NORMAL缓存中并且您处于脱机状态,则无法从原始文档中检索。