【发布时间】:2011-02-24 15:36:43
【问题描述】:
使用 HTML5 离线缓存,与在线时相比,我想在离线时显示另一个页面。 应该不会太难,但它对我不起作用,几个小时后,我仍然看不到出了什么问题。
这是我的清单:
CACHE MANIFEST
# v15 Minute: 18
CACHE:
/Scripts/jquery-1.4.4.min.js
/Content/Site.css
# Documents
/content/lulo_flower.jpg
NETWORK:
/
#Detail screens
/Home/Details/2
FALLBACK:
/ /?offline=true
/Home/Details/2 /Home/Details/2?offline=true
请注意,我不希望 / 和 /Home/Details/2 被缓存。相反,我想在我在线时使用在线版本,并且我想在我离线时显示 /?offline=true 和 /Home/Details/2?offline=true。
该网站正在离线运行,但出现了两个问题:
1) 'NETWORK' 项目没有被兑现。当我访问/页面时,它正在缓存中下载,可能是由于引用了主页html-tag()中的Manifest。
更糟:
2) 'FALLBACK' 项目没有被兑现。使用网络服务器离线浏览时,/ 只显示原始版本(不带 ?offline=true),找不到 /Home/Details/2。 但是, ?offline=true 版本在缓存中:当我在网络服务器离线的情况下手动访问它们时,它们显示得很好。
补充信息:第一次打开页面时的Chrome开发者控制台:
Application Cache Progress event (0 of 5) http://localhost:51034/Scripts/jquery-1.4.4.min.js
:51034/:65online: yes, event: progress, status: downloading
Application Cache Progress event (1 of 5) http://localhost:51034/content/lulo_flower.jpg
:51034/:65online: yes, event: progress, status: downloading
Application Cache Progress event (2 of 5) http://localhost:51034/Content/Site.css
:51034/:65online: yes, event: progress, status: downloading
Application Cache Progress event (3 of 5) http://localhost:51034/?offline=true
:51034/:65online: yes, event: progress, status: downloading
Application Cache Progress event (4 of 5) http://localhost:51034/Home/Details/2?offline=true
:51034/:65online: yes, event: progress, status: downloading
Application Cache Progress event (5 of 5)
:51034/:65online: yes, event: progress, status: downloading
可以看到离线后备页面下载正常,但是重定向不起作用。此外:还有一个神秘的第 6 项正在下载。
有什么想法吗?有没有更好的方法来解决这个问题?
【问题讨论】:
标签: web-applications html offline