【问题标题】:HTML5 cache manifest: whitelisting ALL remote resources?HTML5 缓存清单:将所有远程资源列入白名单?
【发布时间】:2011-01-26 12:03:54
【问题描述】:

我正在做一个包含博客的桌面网站的 iPhone 版本。该博客经常嵌入来自其他域的图像(显然,在这种情况下,图像 URL 总是以 http:// 开头),但是因为我使用的是缓存清单,所以这些图像不会加载,因为它们没有在清单文件。

我有一个 NETWORK: whitelist 部分,其中包含我所有的 AJAX 请求文件等。我什至将 flickr 场域列入白名单,因为我们添加到博客的许多图像都来自我们的 flickr 页面。 flickr 图像显示得很好,但来自另一个域的任何其他“随机”图像热链接显示已损坏。

我尝试添加这样的一行:

http://

到 NETWORK: 部分,但它似乎不喜欢 http:// 作为白名单。

有人对此有什么想法吗?

谢谢! 亚历克斯

【问题讨论】:

    标签: image caching html manifest


    【解决方案1】:

    只需将“在线白名单通配符标志”添加到您的清单中:

    NETWORK:
    *
    

    这应该可以解决问题!更多信息on the whatwg spec page

    希望这会有所帮助!

    【讨论】:

    • 这在 iPhone Safari 上不起作用,但似乎解决了桌面上的问题......显然缓存清单的 iPhone 实现并不完全符合规范。
    【解决方案2】:

    我想我有一个解决方法。如果您创建了一个简单的服务器端文件 (remoteResource.php),您可以像这样引用它会怎样:

    remoteResource.php?resource=http://somewhere.com/remote/image.jpg
    

    PHP(或您正在使用的任何服务器端语言)可以在远程资源中卷曲并将其发送到浏览器而不进行修改。然后,将该文件列入白名单。

    我没有对此进行测试,因为我正在使用的环境没有安装 cURL(呃),但我不明白为什么它不能工作。

    【讨论】:

    • 现在我再次想到这一点,它需要某种解析(可能是 JavaScript)才能将“remoteResource.php?resource=”添加到相关“src”属性的开头。不过应该不会太难。
    猜你喜欢
    • 1970-01-01
    • 2014-01-11
    • 2022-08-11
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 2012-03-06
    • 2012-02-20
    • 1970-01-01
    相关资源
    最近更新 更多