Приложение HTML5 Cache Firefox кэширует текущую страницу, не указанную в списке

мой манифест выглядит так:

<?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/

цель состоит в том, чтобы отобразить автономную страницу в автономном режиме для любой страницы.

Этот манифест устанавливается при доступе к странице:

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; ?>>

(хром имеет специальный манифест, потому что кеш работает хорошо)

Проблема в том, что firefox кэширует мою страницу: когда я ее изменяю, F5 ничего не делает, пока я не обновлю манифест. В about:cache я вижу все файлы в списке + /mypage. Но эта страница НЕ указана в разделе КЭШ:.

Очень скучно обновлять манифест каждый раз, когда я изменяю эту страницу... И позже, когда я перехожу в автономный режим и получаю доступ к /mypage, я не возвращаюсь к странице /offline, а вижу /mypage, потому что она кэшируется, а страница сломан, потому что он пропускает много js/css.

Спасибо за помощь


person jpprade    schedule 05.05.2015    source источник


Ответы (1)


Ну, это не ошибка, это особенность приложения, она называется Мастер записи.

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). Любой такой HTML-файл автоматически добавляется в кэш.

person jpprade    schedule 09.05.2015
comment
проверьте это для решения: labs.ft.com/2012/11/ - person jpprade; 09.05.2015