我正在尝试向我维护的应用程序添加一些离线缓存。这是我第一次不得不使用 AppCache,所以我决定先用一个小型演示站点来测试它。到目前为止,我还无法让其中的离线部分正常工作。Chrome 似乎正在缓存 index.php,因为打印出的日期/时间在页面上永远不会改变,即使我在脚本中发送所有这些无缓存标头,尽管在 Firefox 中日期正在正确更新。当我离线(通过禁用我的网络适配器)时,Chrome 继续显示缓存的 index.php 而不是清单指定的 offline.html,尽管我在控制台中收到以下错误:
应用程序缓存错误事件:清单获取失败 (-1) http://html5test.g1testserver/manifest.appcache
Firefox 只是显示“无法连接”对话框。网站的布局和文件内容都列在下面。
场地布置:
/root/
- manifest.appcache
- index.php
- offline.html
- .htaccess
manifest.appcache:
CACHE MANIFEST
# version 3
CACHE:
offline.html
NETWORK:
index.php
FALLBACK:
/ offline.html
索引.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>
';
?>
离线.html:
<!DOCTYPE html>
<html manifest="/manifest.appcache">
<head>
</head>
<body>
<h1>This will be served in place of index.php</h1>
</body>
</html>
.ht 访问:
AddType text/cache-manifest .appcache