Chrome主动缓存带有.manifest文件的HTML

Chrome主动缓存带有.manifest文件的HTML,html,google-chrome,caching,cache-manifest,Html,Google Chrome,Caching,Cache Manifest,我使用.manifest文件告诉浏览器要缓存哪些资源。基本上包括以下内容: CACHE MANIFEST # This manifest was generated by grunt-manifest HTML5 Cache Manifest Generator # Time: Fri Jul 24 2015 09:57:13 GMT+0100 (BST) CACHE: app.min.js app.min.css js/libs/require-min.js img/leaf.png NE

我使用
.manifest
文件告诉浏览器要缓存哪些资源。基本上包括以下内容:

CACHE MANIFEST
# This manifest was generated by grunt-manifest HTML5 Cache Manifest Generator
# Time: Fri Jul 24 2015 09:57:13 GMT+0100 (BST)

CACHE:
app.min.js
app.min.css
js/libs/require-min.js
img/leaf.png

NETWORK:
*
此文件在HTML中链接如下:

<!DOCTYPE html>
<html manifest="/app.manifest">
    <head>
        <style type="text/css" media="all">
    ....

....
根据Safari用户的报告,他们的UI不尊重缓存文件,在读取Safari要求清单文件具有
.manifest
扩展名后,我将文件名从
manifest.appcache
更改为
app.manifest

我现在看到(特别是在Chrome中)浏览器没有重新获取HTML源代码,因此没有看到清单文件已经更改,也没有加载新的
app.manifest
文件,并且无法下载任何源代码。
/index
HTML文件的缓存头(
Expires
ETag
Last Modified
)和文件内容都已更改,但Chrome拒绝重新获取HTML,除非通过devtools禁用缓存


有人知道为什么Chrome会如此积极地保留这个缓存的HTML吗?关于如何让它重新获取,您有什么想法吗?

您需要更改旧清单文件(
manifest.appcache
)。您的
/index
文件是appcache的一部分,Chrome仍在使用它

从:

注意:鼓励作者将主页也包括在清单中, 但在实践中,引用清单的页面是自动生成的 缓存,即使没有明确提及


Chrome获得了旧的清单,并且没有任何变化,所以它继续运行。尝试向清单.appcache添加随机注释,然后重试。

您需要更改旧清单文件(
manifest.appcache
)。您的
/index
文件是appcache的一部分,Chrome仍在使用它

从:

注意:鼓励作者将主页也包括在清单中, 但在实践中,引用清单的页面是自动生成的 缓存,即使没有明确提及


Chrome获得了旧的清单,并且没有任何变化,所以它继续运行。尝试向manifest.appcache添加一条随机注释,然后重试。

确保/manifest.appcache返回404,这使浏览器了解它现在已经过时,他们将删除所有本地缓存并在下次重新加载页面,以便在新位置获得它

确保/manifest.appcache返回404,这使浏览器明白它现在已经过时,他们将删除所有本地缓存并在下次重新加载页面,以便在新位置获得它

您是否更改了旧的清单文件(manifest.appcache)?我承认这是一个很长的问题,但是你的
/index
文件是appcache的一部分,chrome正在使用它,chrome得到了旧的清单,没有任何更改,所以它继续运行。请尝试向manifest.appcache添加随机注释,然后重试。感谢@anddoutoi,这是理解/index文件是缓存的一部分而不是缓存的起点的关键。我在原始缓存清单位置添加了404响应,这似乎会导致浏览器在后续刷新时重新加载。自我提醒:永远不要更改缓存清单的文件名!没问题。总是乐于助人。我添加了我的评论作为答案,这样您可以将问题标记为已回答,并给我打分;)您是否更改了旧的清单文件(manifest.appcache)?我承认这是一个很长的问题,但是你的
/index
文件是appcache的一部分,chrome正在使用它,chrome得到了旧的清单,没有任何更改,所以它继续运行。请尝试向manifest.appcache添加随机注释,然后重试。感谢@anddoutoi,这是理解/index文件是缓存的一部分而不是缓存的起点的关键。我在原始缓存清单位置添加了404响应,这似乎会导致浏览器在后续刷新时重新加载。自我提醒:永远不要更改缓存清单的文件名!没问题。总是乐于助人。我添加了我的评论作为答案,这样您可以将问题标记为已回答,并给我打分;)