我创建了一个ipad离线应用程序。虽然我已经设置了缓存清单,但是当我打开网页离线模式时,Safari会显示互联网连接不可用的消息。我列出了html页面所需的所有三个文件。 html页面本身,css文件和徽标图像。
我还在html标签和htaccess文件中设置了清单文件名。
任何人都可以让我知道我在哪里做错了或让我知道解决问题的方法。
.html代码
<!DOCTYPE HTML>
<html manifest="/main.manifest">
<head>
<meta name="viewport" content="width=device-width">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<title>Welcome</title>
<body>
thsi is test one
</body>
</html>
清单
# test1
CACHE MANIFEST
/main.html
提前致谢!!!
答案 0 :(得分:1)
我的建议是按照Dive into HTML5 完全中的说明操作。 HTML5离线应用程序可能非常“气质”,所以如果某些内容不完全正确,整个过程就会停止工作,并且很难获得有用的错误信息。
在iOS设备上尝试和调试非常困难,因为开发工具并不是真的存在。我已经成功使用Chrome进行调试,开发工具(尤其是存储和控制台部分)有很多可以使用的有用信息。如果它在Chrome中不起作用,您应该能够更轻松地找出正在发生的事情。如果它在Chrome中有效,但在iOS设备上无效,那么您需要向我们展示您的文件,以便我们为您提供更多帮助。
答案 1 :(得分:1)
应用程序缓存清单的第一行必须包含字符串“CACHE MANIFEST”。它非常严格 - 实际上非常严格,文件的第一个字符必须是“C”。另一方面,你对第一行有一个评论,这就是为什么它不起作用。
具体来说:
应用程序缓存清单的第一行必须包含 字符串“CACHE”,单个U + 0020 SPACE字符,字符串 “MANIFEST”,以及U + 0020 SPACE角色,U + 0009角色 TABULATION(tab)字符,U + 000A LINE FEED(LF)字符或a U + 000D CARRIAGE RETURN(CR)字符。第一行可以是可选的 前面有一个U + FEFF BYTE ORDER MARK(BOM)字符。如果有的话 文本在第一行找到,它被忽略。
因此,短语“CACHE MANIFEST”必须位于“第一行”而不是“第一个非空行”而不是“第一个非注释行”。它必须在第一行。
http://www.w3.org/TR/html5/offline.html#writing-cache-manifests
答案 2 :(得分:0)
您发布的代码是否有效?如果是这样,请确保您的实际应用程序没有超过iPad的缓存清单大小限制: