【问题标题】:html5 cache -> "network: *" doesn't workhtml5缓存->“网络:*”不起作用
【发布时间】:2011-02-11 21:33:45
【问题描述】:

我正在尝试使用 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 上测试)。

什么不工作?

还有其他方法可以打开在线白名单通配符标志吗?

【问题讨论】:

    标签: caching html manifest whitelist


    【解决方案1】:

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

    字体名称.svg#123456789

    这在站点的缓存清单中不起作用,并且由于从移动 safari 获得的反馈有限,我只是猜测 # 导致字体 ID 被读取为注释,而不是部分的实际文件名。

    有没有办法“欺骗”缓存清单以不同方式读取?也许在 SVG 之后使用通配符?还是纯 ascii 技巧?

    【讨论】:

      【解决方案2】:

      在 Firefox 3.6.4 中测试:

      NETWORK:
      http://*
      

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-03-17
          • 1970-01-01
          • 1970-01-01
          • 2012-06-24
          • 1970-01-01
          • 2013-10-24
          • 1970-01-01
          相关资源
          最近更新 更多