2

我正在尝试缓存(供离线使用)我的 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

当然,这没有启用离线缓存。

4

1 回答 1

0

发布 CSS 文件的响应标头。最可能的原因是文件即将到期。

有一个 Etag 但没有 Expires 或缓存控制标头似乎有点奇怪。它可能会混淆离线缓存。尝试在您的服务器配置中明确设置文档过期规则,Apache 的 ExpiresDefault。

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

于 2010-01-12T10:52:40.537 回答