У меня проблема в том, что кажется, что файл cache.manifest кэшируется сам. Это означает, что (Mobile) Safari не отмечает все изменения в файле, поэтому он никогда не будет обновляться и всегда отображает последние кэшированные файлы.
Я пытался избежать этого, используя файл .htaccess
в том же каталоге, что и файл cache.manifest
:
ExpiresActive On
ExpiresDefault "access"
Это не помогло, поэтому я изменил cache.manifest в php-файле, который содержит следующие заголовки:
header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-Type: text/cache-manifest');
У кого-нибудь есть другие идеи, как я могу убедиться, что сам файл кэша будет получен, если это возможно?
Работает на: Safari (Desktop), Chrome (Samsung Galaxy Tab v10.1), Firefox
Не работает: Chrome, Safari (iOS)
Переименовал cache.manifest.php обратно в cache.manifest и добавил следующие строки в .htaccess
<IfModule mod_expires.c>
Header set Cache-Control "public"
ExpiresActive on
# cache.manifest needs re-requests in FF 3.6 (thx Remy ~Introducing HTML5)
ExpiresByType text/cache-manifest "access plus 0 seconds"
</IfModule>
Если я изменю комментарий к ревизии в cache.manifest и обновлю его в Safari (iOS), он все равно покажет мне старый файл. Я невежественен.