我正在测试2个新添加的尺寸:
// testing
add_image_size(\'new-small\', 500, false);
add_image_size(\'medium-large\', 768, false); // just added today for devices support
图像输出html:
<img class="alignnone size-full wp-image-24" src="http://localhost:8888/pfj_blog/wp-content/uploads/2016/01/test-image.jpg" alt="test-image" width="932" height="524" srcset="http://localhost:8888/pfj_blog/wp-content/uploads/2016/01/test-image-500x281.jpg 500w, http://localhost:8888/pfj_blog/wp-content/uploads/2016/01/test-image-768x432.jpg 768w, http://localhost:8888/pfj_blog/wp-content/uploads/2016/01/test-image.jpg 932w" sizes="(max-width: 932px) 100vw, 932px">
我正在chrome中查看网络选项卡,当我以500x900(宽-高)的速度重新加载浏览器时,它首先加载正确的图像,然后立即加载自然图像:
有没有人碰到过这个问题,或者知道如何解决它?
SO网友:Otto
这是一个一般的srcset和浏览器问题,而不是WordPress特定的问题。
然而,一般来说,您无法预测浏览器将如何处理srcset信息。对于您的特定示例,您似乎未能在重新加载之间完全清除缓存。请注意304响应,该响应指示浏览器已经缓存了图像(304是未修改的响应)。
在这种情况下,浏览器只需使用缓存中已经存在的最大图像,这是完全合理的。您已经获得了更高质量的版本,不妨使用它。在这里使用较低质量的图像不会节省任何网络带宽,这是srcset的一个要点。Chrome的算法不仅仅是“使用合适的图像大小”。
所以,为了真正进行测试,您必须清除缓存并重新加载。每一次。
关于不同浏览器如何使用srcset的一些背景信息:https://stackoverflow.com/questions/28683635/is-there-something-wrong-with-my-srcset-definition-or-is-current-browser-suppor
编辑:正如马克·卡普伦在评论中指出的那样,浏览器完全可以根据连接速度选择更大的图像。例如,如果Chrome知道图像位于本地文件系统上(就像您正在查看一个local.html文件),它将始终选择最大的图像。它也可能知道“localhost”,然后也会选择大图像。你不能强迫这个问题,你不能躲在幕后偷看。不是真的。srcset的目标是为浏览器提供信息,允许他们选择图像。你不能为他们决定在什么情况下使用哪个图像。