Firefox / Safari不存储任何脱机缓存数据

时间:2014-03-18 17:16:33

标签: ios firefox safari offline-caching offlineapps

给出以下appcache-manifest:

CACHE MANIFEST
#offline.manifest
#version 1.0 3-18-20141
CACHE:
offline.php
NETWORK:
*
FALLBACK:
* offline.php

两个简单的php文件:

<!DOCTYPE html>
<html lang="de" manifest="offline.manifest">
<body>Offline, ohooohoo!
</body>
</html>

<!DOCTYPE html>
<html lang="de" manifest="offline.manifest">
<body>Online, sucks!
</body>
</html>

我既不能使用Firefox,也不能让IOS上的Safari正常脱机工作。清单文件随正确的MIME类型一起提供:

  AddType text/cache-manifest .appcache
  AddType text/cache-manifest .manifest

我很开心,Firefox和Safari都在运行,但Chrome。在Firefox中使用about:cache?device = offline选项,我得到以下respoonse:

http://localhost/HTML5_SDK/offline.php  0 bytes     8   2014-03-18 17:34:49     2014-03-18 17:34:49

坦率地说,a)我的文件大小为零,b)已过期。 我整天都在讨厌那些东西,并且已经做了许多讨厌的事情,如重新安装浏览器,用全新的iOs杀死mit Iphone等等。

Chrome告诉我,offline.php存储为带有465b的FALLBACK EXLIPCIT,匹配。

是否有人已经设法真正获得一个在跨平台范围内工作的后备清单?

感谢您的建议和最好的问候

弗洛里安

2 个答案:

答案 0 :(得分:0)

我发现了与此完全相同的事情。并且发现Firefox对于Web服务器发回的HTTP头非常挑剔。

我正在设置一个Cache-Control:no-store标头(在Manifest上),Chrome很高兴地接受了,但是Firefox默默地显示了你报告的0字节存储空间。

这一改变让我一切顺利。

答案 1 :(得分:0)

您无法在后备部分使用通配符。这必须是一个URL模式,可能足以毁掉你的浏览器。

您可以通过指定root来实现相同的功能。

FALLBACK:
/ offline.php

最后,如果其中一个php页面是offline.php,那么这不需要添加到CACHE:部分,因为您已在html标记中明确请求了它。根据我的经验,它不应该受到伤害。