我有一个问题,似乎cache.manifest文件是自己缓存的。这意味着(Mobile) Safari没有注意到对文件的所有更改,因此它永远不会更新,并且总是显示最后缓存的文件。
我试图避免使用与cache.manifest文件相同的目录中的一个cache.manifest文件:
ExpiresActive On
ExpiresDefault "access"这没有帮助,所以我在一个包含以下标题的php文件中更改了cache.manifest:
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 (桌面),Chrome (三星Galaxy v10.1),火狐
失败: 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)上刷新它,它仍然会显示旧文件。我毫无头绪。
发布于 2011-06-30 01:20:32
根据HTML5文档,如果应用程序缓存清单文件是字节对字节的,与以前的文件相同,而不考虑到期/等的HTTP缓存头,则认为它不需要更新。
在缓存清单文件的底部,您需要在文件底部包含一个注释,其中包含最近修改的文件的时间戳,例如:
# last modified: Thu, 30 Jun 2011 01:19:46 GMT这将打破字节对字节的同一性,即使文件列表保持不变,但少数文件被更新。
发布于 2011-07-03 21:53:30
正如其他答案所暗示的,缓存清单是一个真正的痛苦处理。
我已经调整了我的HTML5记事本应用程序的PHP清单“构建”脚本。
测试和工作在Chrome,火狐,IE8+,安卓和iOS。
它是开源的,可以在这里获得:https://github.com/JasonHanley/note5/blob/master/build.php
我还在我的ExpiresByType中使用了.htaccess文本/缓存清单“访问加0秒”,我认为除了生成的清单时间戳之外,这是必要的。
发布于 2011-09-22 03:59:17
我只是使用了我自己偶然发现了这个,与SimpleCoders的建议类似,我建议如果您使用的是cache.manifest,您可以使用服务器端包含生成cache.manifest,例如:
CACHE MANIFEST
# <!--#flastmod file="index.html"-->
# <!--#flastmod file="whatever.js"-->
# <!--#flastmod file="whatever.css"-->
whatever.js
whatever.css这样,无论何时更新这些文件,清单都会自动更改。您还可能需要为该文件启用includes并禁用缓存,例如: Apache配置,如下所示:
Alias /whatever /var/www/whatever
<Directory /var/www/whatever>
Options +Includes
AddHandler server-parsed .manifest
</Directory>
CacheDisable /whatever/ihealth.manifest检查您的服务器日志,以确保您返回的文件使用的是"200 Okay“,而不是"304未修改”。
https://stackoverflow.com/questions/6161727
复制相似问题