2010-03-11 38 views
4

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

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

我尝试添加这样一行:

的http://

到网络:部分,但它似乎并不如http://作为白名单。

有没有人对此有任何想法?

谢谢! 亚历

回答

8

只是增加了“在线白名单通配符标志”,以您的清单:

NETWORK: 
* 

应该做的伎俩!更多信息on the whatwg spec page

希望这有助于!

+0

这不适用于iPhone Safari,但确实似乎解决了桌面上的问题......显然,缓存清单的iPhone实现并不完全符合规范。 – 2010-03-15 14:08:46

2

我想我有一个解决方法。如果你创建了一个简单的服务器端文件(remoteResource.php),你可以参考这样的:

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

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

我还没有测试过,因为我正在使用的环境没有安装cURL(唉),但我不明白为什么它不能工作。

+0

现在我又想到了这一点,它需要一些解析(JavaScript,可能)将“remoteResource.php?resource =”添加到相关“src”属性的开头。尽管如此,不应该太困难。 – 2010-04-12 16:30:22