javascript - 在 Vue 组件中渲染本地镜像,其中图像位置存储在 data 属性中

标签 javascript vue.js

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

<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 warn]: Error in render: "Error: Cannot find module '@/assets/my_image.jpg'"

Error: Cannot find module '@/assets/my_image.jpg' at webpackEmptyContext (eval at ./src/components sync recursive (app.js:6618), :2:10)

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

最佳答案

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

关于javascript - 在 Vue 组件中渲染本地镜像,其中图像位置存储在 data 属性中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54066554/

相关文章:

javascript - Node JS 中的内存错误 (node::smalloc::Alloc)

javascript - 为什么 Vue 在替换或创建和删除数组项时使用不同的动画?

javascript - 将 Vueify 用于在 Vue.js 中仅运行时构建的组件

TypeScript 路径别名 - 如何修复导入错误

javascript - Jest Test中触发事件不调用Method

javascript - AngularJS Smart Table 在显示所有行时用空格过滤特殊字符

javascript - 带动画的液体填充文本

javascript - 使用 Mongoose 查询 MongoDB 中的模板文字

javascript - Javascript 同步 XMLHttpRequest 的替代方案(在 Safari 中超时)

javascript - 在js中创建api过滤