我有一个问题,我确信这是一个仅限 Android 的错误,但我需要确定并需要解决它,所以我希望你们中的一个可以帮助:)
这就是发生的事情:
- 您在浏览器中访问索引文件
- 清单文件中声明的文件被缓存
- 一切正常,您可以离线访问文件
- 在这种情况下,您可以更改清单中的版本号,并且文件在浏览器中更新得很好(在交换和刷新之后),但是......
- ...不在 Android 上(三星 Galaxy SIII Jelly Bean)。它卡住了,无论我做什么,都永远不会从服务器读取清单文件并再次更新,直到我清除设置中的缓存。
我认为它可能与其他缓存机制有关,但没有标头设置会有所帮助。
一个有趣的观察:
- 我可以直接调用应用缓存清单并在浏览器中显示。我可以更改内容并再次刷新,这些更改会在浏览器中显示。
- 然后我调用 index.html 文件来调用应用程序缓存,然后
- 我重复第 1 步并直接调用应用程序缓存 - 现在它始终是一个正在显示的缓存版本!- 但不适用于 iOS、Firefox、Safari、Chrome 等。
这让我得出结论,浏览器缓存了清单文件本身,这有点糟糕......
代码可以在这里下载http://bit.ly/Tw9Qqy
索引.html
<!--[if IEMobile 7 ]> <html class="no-js iem7"> <![endif]-->
<!--[if (gt IEMobile 7)|!(IEMobile)]><!--> <html class="no-js" manifest="app.manifest"> <!--<![endif]-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta charset="utf-8">
<title>test</title>
<meta name="description" content="">
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta http-equiv="cleartype" content="on">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="test">test4</div>
<img src="test.png"/>
</body>
</html>
app.manifest 缓存清单 # v127
CACHE:
style.css
test.png
FALLBACK:
NETWORK:
*
样式.css
#test{
color: blue;
}
它真的没有什么花哨的,我试图把它煮沸并消除所有噪音。
非常感谢任何帮助、解决方案、尝试的想法等!:)