【发布时间】:2012-07-12 15:28:53
【问题描述】:
我已经成功实现了一个 HTML5 缓存清单文件,用于在本地存储我的网络应用的页面和资源,以便在用户离线时可以查看其中的部分内容。
我遇到的问题是,如果用户从www.example.com/ 开始,然后从那里导航到www.example.com/products/,www.example.com/products/ 页面上的链接会损坏(缺少部分 URL 路径)并恢复到我的FALLBACK 离线页面,表明它们没有存储在CACHE 中,尽管我明确告诉它们要存储。
这是我的 cache.manifest 文件的一部分:
CACHE MANIFEST
# Version 0.0.1
http://www.example.com/
http://www.example.com/products/
http://www.example.com/products/item-page/
FALLBACK:
/ http://www.example.com/offline.php
当我从主页导航到产品页面时,一切正常。然后当我单击链接导航到item-page 时,浏览器显示我的offline.php 页面,表明http://www.example.com/products/item-page/ 未存储在缓存中。
我错过了什么吗?或者为什么这不起作用?请帮忙,并提供代码/解释:)
编辑 - 我有.htaccess 文件将我的index.php 页面重定向到directory/(从URL 中删除index.php)。这似乎是导致缓存问题的原因,因为当我将 HTML 中的链接从 item-page/index.php 更改为 item-page/ 时,它可以工作。有什么想法吗??
【问题讨论】:
-
您的链接是否肯定指向
http://www.example.com/products/item-page/而不是http://www.example.com/products/item-page? -
但是您的清单中没有
example.com/product/item-page/index.php,您为什么希望它被缓存? -
example.com/products/item-page/index.php在清单中为example.com/products/item-page/。我在清单中省略了index.php,因为我的.htaccess文件将example.com/products/item-page/index.php页面重定向到example.com/products/item-page/ -
所以不要重定向它,或者直接链接到你想要的 URL 而不是你不想使用的 URL。
标签: html offline cache-manifest broken-links