Само кеширование манифеста кэша

Действительно озадаченный этим.

Я пытаюсь кэшировать некоторые ресурсы с помощью манифеста кеша HTML5 (да, я знаю, не судите меня), но манифест, похоже, кэширует сам.


Файл манифеста на самом деле является динамическим сценарием PHP, поэтому он имеет расширение .php.


Устанавливаются следующие заголовки (Как полностью отключить кеширование в Cakephp?)

header('Cache-Control: no-store, private, no-cache, must-revalidate');                  // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0, max-stale = 0', false);    // HTTP/1.1
header('Pragma: public');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');                                       // Date in the past  
header('Expires: 0', false); 
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header('Pragma: no-cache');

header("Content-type: text/cache-manifest");

В разделе СЕТЬ манифест содержит следующее:

NETWORK:
/cachemanifest 
/cachemanifest/ 
/cachemanifest/* 
*/cachemanifest/* 
cachemanifest/ 
cachemanifest

/cachemanifest/manifest.php
cachemanifest/manifest.php

*

Конечно, сам файл манифеста исключен из раздела CACHE :.


В том же каталоге есть файл .htaccess, содержащий следующее:

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/cache-manifest "access plus 0 seconds"
</IfModule>

Сайт построен с использованием CakePHP, который, по-видимому, имеет некоторые «полезные» механизмы кэширования, о которых я мало что знаю. Я бы предположил, что заголовки PHP обойдут все, что угодно ... PHP может.


Итак, что мне не хватает?


person Jeffrey Sweeney    schedule 11.12.2012    source источник


Ответы (2)


Собственно, похоже, что один из них сработал. Кешу требуется всего 30 с лишним секунд, чтобы понять, что он нуждается в обновлении.

person Jeffrey Sweeney    schedule 11.12.2012

Принцип работы кеша заключается в том, что для обновления манифеста должен измениться некоторый текст внутри манифеста, даже если это всего лишь одна буква. Это можно сделать, если автомат сборки будет добавлять метку времени каждый раз, когда происходит изменение кода.

person Coding Friend    schedule 12.05.2016