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