0

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

4

1 回答 1

2

你的问题有两个小误区:

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

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

在您的情况下,我会说 JPEG 图像超过了阈值,因此它们不会作为data:URL 内联,并且因为它们是 JPEG(即有损压缩),所以您也看不到生成的精灵图像。

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

于 2013-07-22T08:41:23.550 回答