caching - HTML5 list 缓存问题

标签 caching html manifest

我正在尝试缓存(供离线使用)我的网络应用程序的某些部分,但是每当我缓存 css 文件或 js 文件时,它们在从缓存加载时会变成空的(在 Safari 和 Firefox 中均已选中)

什么会导致这个问题?我已确保 list 文件正常工作,并且我已尝试使用相对路径和绝对路径(包括页面域)。

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

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

最佳答案

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

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

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

关于caching - HTML5 list 缓存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2048297/

相关文章:

JavaScript 时钟现在显示在我的 chrome 扩展程序中

google-chrome - 如何调试 chrome manifest.json?

entity-framework - Entity Framework 二级缓存和Windows Azure缓存

php - Laravel 检查缓存标签是否存在

django - 如何在 django-redis 中扩展缓存 ttl(生存时间)?

android - 使用 HttpResponsecache 的离线缓存时出现 FileNotFoundException

javascript - 如何在 vuejs 中显示自定义加载栏并使用自定义指令控制它?

html - 如何用CSS3制作教室绿板效果?

html - 如何制作任何类型的第一个元素并在语句之前添加到该元素

android - Android 中 LaunchModes 的实际用例是什么?