我的清单看起来像这样:
<?php
header("Cache-Control: no-cache, private");
header("Content-Type: text/cache-manifest");
?>
CACHE MANIFEST
# v32
/wp-content/plugins/sitepress-multilingual-cms/res/css/language-selector.css?v=3.1.9.3
/wp-content/themes/mytheme/css/reset.css
/wp-content/themes/mytheme/js/jquery-2.1.3.min.js
/wp-content/themes/mytheme/img/reset.png
/wp-content/themes/mytheme/img/tablette_petit.png
/wp-content/themes/mytheme/img/ordi_petit.png
/wp-content/themes/mytheme/img/home.png
/wp-content/themes/mytheme/img/update.png
/wp-content/themes/mytheme/font/tahoma2.ttf
FALLBACK:
/ /offline/
目标是在任何页面的offine时显示离线页面。
此清单在访问页面时设置:
<!doctype html>
<?php
$manifest="";
if($pagename == "mypage"){
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== false){
$manifest="manifest=\"/cachemanifest/\"";
}else{
$manifest="manifest=\"/cachemanifestothers/\"";
}
}
//$manifest="";
?>
<html class="mainsite" <?php echo $manifest; ?>>
(chrome有一个特殊的清单,因为缓存运行良好)
问题是firefox正在缓存mypage: 当我修改它时,F5什么都不做,直到我更新清单。 在about:cache我看到列出的每个文件+ / mypage。 但是此页面未列在CACHE:部分中。
每次修改此页面时更新清单都很无聊...... 后来当我离线访问/ mypage时,我不会回到/离线页面但是看到/ mypage因为它被缓存而且页面被破坏了,因为它错过了很多js / css。
感谢您的帮助
答案 0 :(得分:0)
这不是一个错误,它是应用程序的一个功能,它被称为主条目。
https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache#Master_entries
在这里讨论:
http://www.webdirections.org/blog/appcache-not-so-much-a-douchebag-as-a-complete-pain-in-the/
主条目是包含清单属性的HTML文件 指向清单文件的html元素(这是唯一的方法 创建一个HTML5 appcache BTW)。任何此类HTML文件都是自动的 添加到缓存中。