首页 > 解决方案 > Nuxt.js + vuetify 图像未加载

问题描述

我正在使用 Nuxt.js + Vuetify,但图像无法加载到我的下一页文件中。例如,在我的 中./pages/browse/index.vue,我有一个像这样的 vuetify 图像标签:

<v-img
  src="~/assets/img/test.png"
  style="width:300px"
  contain
></v-img>

该图像位于assets/img/test.png,但是,每当我启动我的 Nuxt 服务器时,图像都不会显示,下面是从 Chrome 开发工具复制的 div 元素:

<div class="v-image__image v-image__image--contain" style="background-image: url(&quot;http://localhost:3333/browse/~/assets/img/test.png&quot;); background-position: center center;"></div>

该图像仅在我不使用这样的 Vuetify 图像组件时才有效:

<img
  src="~/assets/img/test.png"
  style="width:300px"
/>

标签: javascriptvue.jswebpackvuetify.jsnuxt.js

解决方案


考虑在static文件夹下添加图像。assets文件夹存放需要被 webpack 解析的 css/sass/scss 文件。是的,您可以添加小图像assets,然后在 webpack 解析它时将其转换为 base64。但是这些图像可以仅使用<img />标签而不是通过<v-img />vuetify 的组件加载到应用程序上。

我的理解是<img />可以采用 base64 字符串,然后它会加载相应的图像,但<v-img />它期望src是图像的 URL。当你给一个base64时,繁荣,它不会加载任何东西!!!

使用static文件夹

--static
  --img

然后您可以使用从应用程序的任何位置访问图像

<v-img src="img/test.png"/>

推荐阅读