没有图像条文件,也没有使用gwts ClientBundle ImageResource的单个请求

时间:2013-07-21 21:50:02

标签: gwt

gwts clientbundle + imageresource的目的是将http请求的数量减少到1并最小化传输的字节数,而clientbundle创建一个包含所有jpg-pics的jpg条带文件。 例如,我有十个图片,clientbundle会将所有这十个图片放入一个jpg-strip文件中 如果应用程序将调用所有这些图像,则只有一个http请求单jpg-strip文件。 这就是我的理解。 问题是clientbundle没有创建单个条带文件。 它创建了十个可缓存的文件,但是当我启用缓存时,它仍然不会创建这个单一的stripfile。 iam理解错误是clientbundle的目的是什么?

1 个答案:

答案 0 :(得分:2)

你的问题有两个小误解:

  • ClientBundle只会为IE6 / 7生成一个sprited图像;对于所有其他浏览器,它将使用data: URL(至少这是默认配置),直到图像大小的某个阈值,然后将图像直接引用为外部(不是sprited)。

  • ClientBundle不会为具有有损压缩的图像(例如JPEG)生成sprited图像(对于IE6 / 7),仅对于那些具有无损图像的图像(例如PNG或GIF),并且只有它们是没有动画,只有当它们不是太大时(gwt.imageResource.maxBundleSize系统属性的阈值为controlled且默认为256像素)

在你的情况下,我会说JPEG图像越过阈值,因此它们没有内联为data: URL,并且因为它们是JPEG(即有压缩的压缩),所以你看不到sprited生成的图像。

注意:data:网址实际上有几个阈值: