【问题标题】:HTML5 Cache Manifest Links are Broken when Offline离线时 HTML5 缓存清单链接断开
【发布时间】: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


【解决方案1】:

您的服务器将 item-page/ 重定向到 item-page/index.php,并且重定向不会自动缓存。

你应该

  1. 将 item-page/index.php 添加到清单中,除了 item-page(它们实际上是两个页面),或者
  2. 让 item-page/ 加载 index.php 的内容,而不需要重定向

【讨论】:

    【解决方案2】:

    如果您将此部分添加到清单文件中,它应该可以工作

    NETWORK:
    *
    

    【讨论】:

    • 所有这一切都是包含清单中未特别列出的所有文件,并允许缓存包含 <html> 标记中的清单的页面。
    猜你喜欢
    • 1970-01-01
    • 2012-10-14
    • 2010-11-15
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    相关资源
    最近更新 更多