我尝试使用Html5应用缓存在离线模式下运行我的应用。 为此,我创建了test.html文件和demo.appcache
在这个html页面中,我正在使用来自本地主机的一些图像。当我的本地主机运行时,它运行正常。但是,如果我试图阻止本地主机,图像不会从我的应用程序缓存中获取。 out put只显示为空页。
这是我的sampletest.html
<!DOCTYPE html>
<html manifest="demo.appcache">
<head>
</head>
<body>
Further modified........Test Again
<img src="http://172.17.0.238/SampleImages/two.jpg" width="225" height="151" alt="Milford Sound in New Zealand" />
</body></html>
demo.appcache
CACHE MANIFEST
CACHE:
sampletest.html
NETWORK:
FALLBACK:
我的代码有什么问题。在CACHE下:我加载了我的html文件。但是,当本地主机不可用时,它不会从应用缓存加载html。
任何帮助...... 问候, LOKESH。
答案 0 :(得分:0)
您必须在清单中包含您所需的所有资源:图片,外部JavaScript和CSS等。
答案 1 :(得分:0)
我有类似的问题。在我的情况下,我在Android设备中使用WevView。只需要9分钟即可注册主机无法访问 - 然后从appcache加载。我不知道其他代理人是否有这样的行为,但值得一试;)
无论如何:如果CACHE部分是第一个条目,则不必声明它:
CACHE MANIFEST
sampletest.html
NETWORK:
仅当您想在使用NETWORK或FALLBACK后添加更多要缓存的内容时:
CACHE MANIFEST
sampletest.html
NETWORK:
*
FALLBACK:
online.html offline.html
CACHE:
additionalContent.html
但请不要问我为什么他们认为必须这样做;)
答案 2 :(得分:0)
您遇到的问题主要是由于根据情况不同的错误代码。 如果您的计算机无法访问Internet,则不会尝试访问服务器,并尝试从appcache加载。
问题是当您的计算机可以访问互联网,并且您关闭服务器,然后错误是不同的(它将返回可能是4xx或5xx或等效物)。这是服务器问题,而不是用户问题,因此无法加载缓存。
否则,如果以其他方式获取清单失败(例如,服务器返回另一个4xx或5xx响应或等效,或者存在DNS错误,或连接超时,或者用户取消下载,或解析器如果检查魔术签名时清单失败,或者服务器返回重定向,或者资源标记为text / cache-manifest以外的MIME类型,则运行缓存失败步骤。