2010-01-12 130 views
2

我试图缓存(用于离线使用)我的web应用程序的某些部分,但每当我缓存css文件或js文件时,它们在从缓存加载时变为空(在Safari和Firefox中同时检查)HTML5清单缓存问题

什么会导致此问题?我确保清单文件正常工作,并且我已经尝试了相对路径和绝对路径,包括页面的域。

如果我排除所有的脚本和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 

这当然没有启用脱机缓存。

回答

0

安置自己的响应头的CSS文件。最可能的原因是文件即将过期。

似乎有点奇怪具有一个ETag但不是一个Expires或缓存控制报头。它可能会混淆脱机缓存。尝试在服务器配置中明确设置文档到期规则,即Apache的ExpiresDefault。

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

+0

张贴在原来的职位,因为意见不能处理的代码? – 2010-01-12 11:08:31

+0

它没有帮助问题。我将缓存时间设置为一周,并清除所有信息,但问题仍然存在。 离线css和js文件仍为空。 – 2010-01-12 12:28:02