我正在使用 Nuxt 2 和 Nuxt Image(静态提供程序)从我的图像生成 srcset 和 WEBP 格式。我在标记中使用以下组件:
<nuxt-picture :src="srcStringVariable" alt="" sizes="medium:66vw large:46.2vw huge:40.788vw" :imgAttrs="{ loading: 'lazy' }" />
运行
nuxt generate
并查看生成的 HTML 文件后,我看到了预期的结果。 Nuxt Image 创建了图片标签并引用了不同尺寸和格式的生成文件。
<picture>
<source type="image/webp" srcset="/_nuxt/image-0933bc.webp 828w, /_nuxt/image-e8832f.webp 300w, /_nuxt/image-a9aa4c.webp 800w" sizes="(max-width: 920px) 90vw, (max-width: 1200px) 25vw, 800px">
<img src="/_nuxt/image-a8dee0.jpeg" srcset="/_nuxt/image-ed5284.jpeg 828w, /_nuxt/image-cb0218.jpeg 300w, /_nuxt/image-a8dee0.jpeg 800w" sizes="(max-width: 920px) 90vw, (max-width: 1200px) 25vw, 800px" alt="" loading="lazy">
</picture>
现在我的问题:如果我正在运行
nuxt start
并检查源代码,它在开发工具中看起来像这样:
<picture>
<source type="image/webp" srcset="image.jpg 828w, image.jpg 300w, image.jpg 800w" sizes="(max-width: 920px) 90vw, (max-width: 1200px) 25vw, 800px">
<img src="image.jpg" srcset="image.jpg 828w, image.jpg 300w, image.jpg 800w" sizes="(max-width: 920px) 90vw, (max-width: 1200px) 25vw, 800px" alt="" loading="lazy">
</picture>
所有来源都引用相同的原始图像。当我将其部署到 Netlify 时也会发生这种情况。这是预期的行为吗,我只是没有理解 Nuxt Image 的意义?我的设置或标记有问题吗?
我的
nuxt.config.js
文件有以下相关设置:
export default {
target: 'static',
ssr: true,
buildModules: ['@nuxt/image'],
image: {
provider: 'static',
staticFilename: '[publicPath]/[name]-[hash][ext]',
screens: {
tiny: 460,
small: 720,
medium: 920,
large: 1200,
huge: 1600,
full: 1900,
},
},
}
如果有 Nuxt 经验的人可以尝试向我解释这种行为,那将非常有帮助。在我看来,Nuxt Image 的文档非常有限。