html5缓存 - > “network:*”不起作用

时间:2010-04-24 15:35:31

标签: caching html5 manifest whitelist

我正在尝试使用html 5缓存进行简单测试。

这是一个简单的网页:

<!DOCTYPE html>
<html manifest="test.manifest">
<head>

</head>
<body>
   <img src="http://www.somewebsite.com/picture.jpg"/>
</body>
</html>

使用以下清单:

CACHE MANIFEST
#v0.1

NETWORK:
http://www.somewebsite.com/

这项工作正常,图片显示。

我的问题是,我无法知道图片的来源。这是一个在线白名单通配符标志,可以解决我的问题。

但是有了清单:

CACHE MANIFEST
#v0.1

NETWORK:
*

不显示图像(在safari / safari mobile / firefox上测试)。

什么不起作用?

是否有另一种方法可以打开在线白名单通配符?

3 个答案:

答案 0 :(得分:4)

在Firefox 3.6.4中测试:

NETWORK:
http://*

答案 1 :(得分:1)

the docs,当“在线白名单通配标记打开”时(即NETWORK: *格式),

  

子资源,例如样式表,   图像等只会被缓存   使用常规HTTP缓存   然而,语义学。

这似乎是“什么不起作用”。要以HTML5方式缓存子资源,清单必须在CACHE:部分中列出它们,或者像在第一个版本中那样使用特定的“在线白名单命名空间”。

答案 2 :(得分:-1)

我希望在针对移动Safari的webapp中使用svg字体(移动safari只读取@ font-face的svg字体格式)移动safari还需要font-ID,它包含在文件的末尾名称,但包含在数字符号(#)之后:

字体name.svg#123456789

这不适用于网站的缓存清单,并且由于移动safari的反馈有限,我只是猜测#导致font-id被读作注释,而不是部分实际文件名。

有没有办法'欺骗'缓存清单以不同方式阅读?也许在SVG之后使用通配符?还是一个只有ascii的技巧?