在 Vue 组件中渲染本地图像,其中图像位置存储在数据属性中

Posted

技术标签:

【中文标题】在 Vue 组件中渲染本地图像,其中图像位置存储在数据属性中【英文标题】:Render local image in Vue component where image location is stored in data attribute 【发布时间】:2019-06-01 15:43:53 【问题描述】:

我正在尝试从 Vue 项目中的资产文件夹中渲染图像。当我使用以下任何一种方法对其进行硬编码时,图像就会显示:

<img src="../assets/my_image.jpg"></img>
<img :src="require('../assets/my_image.jpg')"></img>
<img src="@/assets/my_image.jpg"></img>
<img :src="require('@/assets/my_image.jpg')"></img>

但是我无法获取要渲染的图像,我将该位置存储在名为imgLocation 的数据属性中,其中imgLocation='../assets/my_image.jpg'imgLocation='@/assets/my_image.jpg'

<img :src="imgLocation"></img>
<img :src="require(imgLocation)"></img>

第一个元素不显示图像,也不向控制台记录任何内容。第二个元素在控制台中显示以下错误:

[Vue 警告]:渲染错误:“错误:找不到模块 '@/assets/my_image.jpg'”

错误:找不到模块“@/assets/my_image.jpg” 在 webpackEmptyContext (eval at ./src/components sync recursive (app.js:6618), :2:10)

知道我在这里做错了什么吗?

【问题讨论】:

请查看***.com/questions/53950105/… 【参考方案1】:

在第二种情况下,绑定是在运行时评估的。您希望在构建时解析路径。因此,您可能应该在组件的 data 部分中使用 imgLocation: require('../assets/my_image.jpg')imgLocation: require('@/assets/my_image.jpg')

【讨论】:

@Boussadjra 谢谢!

以上是关于在 Vue 组件中渲染本地图像,其中图像位置存储在数据属性中的主要内容,如果未能解决你的问题,请参考以下文章

如何将图像位置传递给 Vue 中的子组件?

在 WebView 中使用本地图像渲染本地 HTML 文件

如何从 Firebase 存储中删除 Vue.js 组件图像?

如何在本地存储中保存图像位置

使用 laravel 在 Vue 中显示存储文件夹中的图像

r2d3 + Shiny:无法在 D3 中渲染本地图像,尽管能够使用 URL 渲染图像