HTML5应用程序缓存Firefox正在缓存未列出的当前页面

时间:2015-05-05 23:14:19

标签: html5 firefox html5-appcache cache-manifest

我的清单看起来像这样:

<?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时显示离线页面。

此清单在访问页面时设置:

http://somfy.local/mypage/

<!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。

感谢您的帮助

1 个答案:

答案 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文件都是自动的   添加到缓存中。