我正在处理我正在处理的网络应用程序的问题,我发布了一个问题here,这有点模糊,可能不是很有帮助。我决定创建一个非常基本的网站,并将其构建为主应用程序,并查看它的中断位置。我已经完成了这项工作并立即陷入了离线缓存的困境。
这是IIS 7.5中本地托管的基本3页静态网站。我创建了文件夹c:\ inetpub \ wwwroot \ ManifestTesting,将其作为Web应用程序添加到IIS,并为.appcache扩展添加了新的MIME类型text / cache-manifest。我也使用FireFox 9.0进行测试,因为它具有离线模式功能。
我创建了3个html页面并将它们添加到ManifestTesting文件夹中:
所以现在如果我浏览到http://localhost/manifesttesting,如果获得索引页面并且可以导航到2页。
然后我创建了一个名为manifest.appcache的文件并将其添加到ManifestTesting文件夹中:
CACHE MANIFEST
CACHE:
index.htm
page1.htm
page2.htm
并在index.htm中添加了对清单文件的引用:
<html manifest="manifest.appcache">
因此,如果我清除所有历史记录并浏览到index.htm,FireFox会询问我是否允许网站存储数据以供离线使用。我点击允许,将浏览器切换到离线模式,然后尝试导航到page1.htm工作正常!所以到目前为止一切都很好。
现在对于我不理解的那一点。然后,我在ManifestTesting文件夹中创建了一个名为“pages”的新文件夹,并将page1和page2移入其中。我更新了索引中的链接以引用新位置,如果我浏览没有清单引用的网站,它就像以前一样正常工作。然后,我重新引用索引中的清单文件,并将清单更新为:
CACHE MANIFEST
CACHE:
index.htm
pages/page1.htm
pages/page2.htm
然后我清除历史记录,刷新,firefox要求允许网站存储离线数据,启用离线模式,然后尝试导航到page1 - 它不起作用! FireFox告诉我它处于离线模式,无法浏览网页!
我做错了什么?
答案 0 :(得分:1)
这里可能有一些可能性:
1)你能尝试输入“/pages/page1.htm”而不是“pages / page1.htm”
2)还要确保所有链接和您在浏览器上键入的内容都区分大小写。 ('pages / page1.htm'与'pages / Page1.htm'不同)
3)你提到你清除了历史...如果你这样做是为了测试,你需要清除物理文件缓存,而不仅仅是历史。4)这可能是最可能的原因:当您对清单文件进行更改并刷新浏览器时,会发生这种情况(假设您在线)
这是目前的标准行为。有些人放了一些事件处理程序来提示用户进行另一次刷新(第一次刷新后)