1

尝试使用缓存清单——在 Chrome 和 Safari 中似乎一切正常,但在移动版 Safari 中却不行。

我已确保遵守 HTML5 离线应用程序的标准:

  1. 将 <html manifest="cache.manifest"> 添加到已加载的单站点页面

  2. 确保清单的 MIME 类型正确(在 .htaccess 中设置):AddType text/cache-manifest .manifest

  3. 有一个语法正确的清单(通过http://manifest-validator.com/验证)。所有资产都使用相对路径引用(因此协议没有变化)。

我在 Chrome 和 Safari 中没有收到任何 Javascript 错误,并且正在使用这个方便的 snipit 将相关事件记录到控制台:

function logEvent(event) {
    console.log(event.type);
}

window.applicationCache.addEventListener('checking',logEvent,false);
window.applicationCache.addEventListener('noupdate',logEvent,false);
window.applicationCache.addEventListener('downloading',logEvent,false);
window.applicationCache.addEventListener('cached',logEvent,false);
window.applicationCache.addEventListener('updateready',logEvent,false);
window.applicationCache.addEventListener('obsolete',logEvent,false);
window.applicationCache.addEventListener('error',logEvent,false);

但是,在移动 Safari 中,我收到了“无法获取应用程序缓存清单”错误记录,以及没有其他解释的“检查”和“错误”日志事件。有任何想法吗?

4

1 回答 1

2

没关系...事实证明您不能在 .htpasswd 后面使用清单。禁用它就可以了。

于 2012-03-08T20:00:25.610 回答