【问题标题】:HTML5 manifest cache problemsHTML5 清单缓存问题
【发布时间】:2011-01-04 03:12:03
【问题描述】:

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

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

【问题讨论】:

    标签: caching html manifest


    【解决方案1】:

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

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

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

    【讨论】:

    • 由于 cmets 无法处理代码而在原始帖子中发布?
    • 这对问题没有帮助。我将缓存时间设置为一周并清除了所有信息,但问题仍然存在。离线css和js文件还是空的。
    猜你喜欢
    • 2011-11-27
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 2010-09-21
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    相关资源
    最近更新 更多