我已经成功实现了一个HTML5缓存清单文件,用于本地存储我的web应用程序的页面和资源,以便在用户离线时可以查看其中的部分内容。
我遇到的问题是,如果用户从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/
时,它就起作用了。有什么想法吗??
您的服务器将itempage/重定向到itempage/index.php,并且重定向不会自动缓存。
你应该
- 除了项目页面(实际上是两个页面)之外,还将项目页面/index.php添加到清单中,或者
- 使项目页面/加载index.php的内容,无需重定向
如果您将此部分添加到清单文件中,它应该可以使用
NETWORK:
*