我正在尝试缓存(供离线使用)我的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
当然没有启用离线缓存。
答案 0 :(得分:0)
发布CSS文件的回复标题。最可能的原因是文件即将过期。
看起来有点奇怪的是有Etag而不是Expires或缓存控制头。它可能会混淆脱机缓存。尝试在服务器配置中明确设置文档过期规则,ExpiresDefault for Apache。
Etag的规则说,如果Etag在后续请求中匹配,则服务器(在这种情况下是您的离线缓存)应该发送304(使用您已有的)和NO DATA。但是,如果文档不在浏览器NORMAL缓存中并且您处于脱机状态,则无法从原始文档中检索。