浏览器没有下载正确的响应图像
Browser doesn't download the correct responsive image
<img :src="project.thumbnails.small[0]"
class="card-img-top"
:srcset="`${project.thumbnails.small[0]} 300w, ${project.thumbnails.medium[0]} 900w, ${project.thumbnails.high[0]} 1400w`"
sizes="(min-width: 300px) 90vw, (min-width: 768px) 20vw, (min-width: 991px) 10vw"
width="100%"
:alt="project.title">
视口大于991px时,图片宽度仅为视口的10%;因此浏览器应该获得 900w 或 300w 的图像,但它下载了 1400w 的图像。我在这里做错了什么?
这是在浏览器中呈现的代码。
<img data-v-5857f165="" src="http://placehold.it/330x330"
srcset="http://placehold.it/330x330 300w, http://placehold.it/900x900 900w, http://placehold.it/1400x1400 1400w"
sizes="(min-width: 300px) 90vw, (min-width: 768px) 20vw, (min-width: 991px) 10vw"
width="100%" alt="sit amet" class="card-img-top">
如果相关的话,我正在使用 Chrome 版本 57.0.2987.133(64 位)。
我想我已经解决了问题。
Chrome 显示缓存中的高质量图像。如果口袋里已经有更高质量的图像,为什么还要下载其他质量较低的图像,对吗?参见 this article。
接下来,修改媒体查询的大小顺序,从高到低:
<img :src="project.thumbnails.small[0]"
class="card-img-top"
:srcset="`${project.thumbnails.small[0]} 300w, ${project.thumbnails.medium[0]} 900w, ${project.thumbnails.high[0]} 1400w`"
sizes="(min-width: 991px) 10vw, (min-width: 768px) 20vw, 300px"
width="100%"
:alt="project.title">
<img :src="project.thumbnails.small[0]"
class="card-img-top"
:srcset="`${project.thumbnails.small[0]} 300w, ${project.thumbnails.medium[0]} 900w, ${project.thumbnails.high[0]} 1400w`"
sizes="(min-width: 300px) 90vw, (min-width: 768px) 20vw, (min-width: 991px) 10vw"
width="100%"
:alt="project.title">
视口大于991px时,图片宽度仅为视口的10%;因此浏览器应该获得 900w 或 300w 的图像,但它下载了 1400w 的图像。我在这里做错了什么?
这是在浏览器中呈现的代码。
<img data-v-5857f165="" src="http://placehold.it/330x330"
srcset="http://placehold.it/330x330 300w, http://placehold.it/900x900 900w, http://placehold.it/1400x1400 1400w"
sizes="(min-width: 300px) 90vw, (min-width: 768px) 20vw, (min-width: 991px) 10vw"
width="100%" alt="sit amet" class="card-img-top">
如果相关的话,我正在使用 Chrome 版本 57.0.2987.133(64 位)。
我想我已经解决了问题。
Chrome 显示缓存中的高质量图像。如果口袋里已经有更高质量的图像,为什么还要下载其他质量较低的图像,对吗?参见 this article。
接下来,修改媒体查询的大小顺序,从高到低:
<img :src="project.thumbnails.small[0]"
class="card-img-top"
:srcset="`${project.thumbnails.small[0]} 300w, ${project.thumbnails.medium[0]} 900w, ${project.thumbnails.high[0]} 1400w`"
sizes="(min-width: 991px) 10vw, (min-width: 768px) 20vw, 300px"
width="100%"
:alt="project.title">