给出以下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,匹配。
是否有人已经设法真正获得一个在跨平台范围内工作的后备清单?
感谢您的建议和最好的问候
弗洛里安
答案 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标记中明确请求了它。根据我的经验,它不应该受到伤害。