我正在使用HTML5缓存清单,我在Chrome中发现了一个非常奇怪的问题。下面是页面的页眉:
<html id="html" xmlns="http://www.w3.org/1999/xhtml" manifest="Portal/CacheManifestHandler.ashx">以下是从fiddler捕获的清单内容:
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/cache-manifest; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 20 Apr 2012 15:56:20 GMT
Content-Length: 56
CACHE MANIFEST
NETWORK:
*
#Timestamp: 634705337615835020我有一个特殊的脚本在页面的页眉内的标签,是在服务器上动态生成的。以下是用户首次访问该页面时为该脚本标记返回的内容:
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/javascript; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 20 Apr 2012 15:36:33 GMT
Content-Length: 74
document.location='/Portal/Login.aspx?ReturnUrl=%2fPortal%2fDefault.aspx';您看不到脚本在Cache-manifest中,也看不到它的头允许浏览器(Chrome)缓存它。尽管如此,当我随后在浏览器中打开相同的页面时,Chrome会从cache-manifest加载该页面,这是可以的。然而,令人惊讶的是,它也是从缓存中加载的。我可以验证它,因为我的服务器断点没有命中,Fiddler也没有显示对此的请求。网络没有关闭,服务器可以访问(这不应该有什么不同,因为Chrome被要求无论如何都不要缓存它)。
这是预期的行为吗?Chrome不应该再次从服务器请求,即使它的包含页面是从清单缓存中加载的。
chrome的chrome://appcache-internals也只在缓存中显示了两个urls,这同样是好的,为什么它会从缓存而不是服务器加载

发布于 2012-09-28 22:16:52
我们遇到了同样的问题,我们的解决方案是在app.manifest的网络部分加上一个*,这样我们的网络部分看起来就像
网络:*
我现在正在挖掘,看看这是否真的是谷歌的“设计”,还是完全错误的。
https://stackoverflow.com/questions/10249635
复制相似问题