Can';无法使HTML5 AppCache正常工作

Can';无法使HTML5 AppCache正常工作,html,html5-appcache,Html,Html5 Appcache,我正在尝试向我维护的应用程序添加一些脱机缓存。这是我第一次不得不使用AppCache,所以我决定先用一个小的演示站点进行试驾。到目前为止,我还无法使脱机部分正常工作。Chrome似乎正在缓存index.php,因为打印出来的日期/时间在页面上永远不会改变,即使我在脚本中发送了所有那些没有缓存的头,尽管在Firefox中日期更新正确。当我脱机时(通过禁用网络适配器),Chrome会继续显示缓存的index.php,而不是清单中指定的offline.html,尽管控制台中出现以下错误: 应用程序缓存

我正在尝试向我维护的应用程序添加一些脱机缓存。这是我第一次不得不使用AppCache,所以我决定先用一个小的演示站点进行试驾。到目前为止,我还无法使脱机部分正常工作。Chrome似乎正在缓存index.php,因为打印出来的日期/时间在页面上永远不会改变,即使我在脚本中发送了所有那些没有缓存的头,尽管在Firefox中日期更新正确。当我脱机时(通过禁用网络适配器),Chrome会继续显示缓存的index.php,而不是清单中指定的offline.html,尽管控制台中出现以下错误:

应用程序缓存错误事件:清单获取失败(-1)

Firefox只显示“无法连接”对话框。网站的布局和文件内容都列在下面

场地布局:

/root/
-  manifest.appcache
-  index.php
-  offline.html
-  .htaccess
manifest.appcache:

CACHE MANIFEST
# version 3

CACHE:
offline.html

NETWORK:
index.php

FALLBACK:
/ offline.html
index.php:

<?php
    header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
echo '<!DOCTYPE html>
<html manifest="/manifest.appcache">
<head>
    <title>HTML5 Test</title>
    <meta http-equiv="CACHE-CONTROL" content="NO-CACHE" />
</head>
<body>

<h1>This is index.php: '.date('d/m/Y H:i:s').'</h1>
</body>
</html>
';
?>

您不需要将清单包含在
标记中。只有当您想缓存该页面时,才需要这样做。不在doctype中包含清单并不意味着不会调用/更新.appcache

因此,如果您希望offline.html在index.php脱机时作为后备运行,那么不要缓存index.php


HTML5Rocks提供了一些关于如何使用appcache的好信息

我认为只有当缓存不成功时才会调用fallback-这里有一个非常有用的关于fallback的部分。Chrome的资源/应用程序缓存中包含哪些内容?@CrimsonChin:offline.html、index.php和manifest.appcache列在资源中如果不希望缓存index.php,则从标记中删除manifest属性“如果页面不包含manifest属性,则浏览器不会缓存页面(除非在清单文件中明确列出。”浏览器仍将缓存数据库中的所有其他内容manifest@CrimsonChin:这就是问题所在。基本上整个网站都运行index.php,查询字符串参数决定了显示的内容。我现在对包含manifest属性的页面进行了更多选择,它更接近我需要的内容。你应该添加一个答案请把你的评论删掉,以便我能接受。
<!DOCTYPE html>
<html manifest="/manifest.appcache">
<head>
</head>
<body>
    <h1>This will be served in place of index.php</h1>
</body>
</html>
AddType text/cache-manifest .appcache