vue3数据库中存头像图片相对路径在前端用prop只能显示路径或无法显示图片只能显示alt中内容的问题的解决

不想看前情可以直接跳到头像部分代码

前情:

首先我们是在数据库中存图片相对路径,这里我们是在vue的src下的assets专门建一个文件夹img存头像图片。

然后我们如果用prop="avatar" label="头像"是只能显示图片路径的,即loginBG6这样的文字。我们的目的是显示图片,直接用<img src="avatar" />的方式,结果是不能成功的。

我们尝试直接<img src="@/assets/img/loginBG6">是可以出来图片的,只是所有显示的图片都是同一张。我们想要每一行对应的图片要用到scope。通过scope.row.avatar获取这一行对应的图片。

我们的图片不是存在static文件夹中的,这里需要require一下才行。我们在数据库中存的是相对路径,那么我们可以在require中补齐路径。其实也不算补完整,这里补了之后也是相对的,变成@/assets....这种的也就是相对在根目录下。

头像部分代码:

html 复制代码
<el-table-column label="头像">
                        <template #default="scope">
                            <el-image :src="require(`@/assets/img/${scope.row.avatar}`)" :alt="picture"
                                      style="width: 60px; height: 60px;"></el-image>
                        </template>
                    </el-table-column>

表格整个的代码:

html 复制代码
<el-table :data="userData" class="userList-table" :header-cell-style="{ textAlign: 'center' ,height: '70px', background: 'ghostwhite'} "
                          :cell-style="{ textAlign: 'center' }">
                    <el-table-column prop="username" label="姓名"></el-table-column>
                    <el-table-column prop="password" label="密码"></el-table-column>
                    <el-table-column prop="phone" label="电话号码"></el-table-column>
                    <el-table-column prop="email" label="邮箱"></el-table-column>
                    <el-table-column prop="sex" label="性别"></el-table-column>
                    <el-table-column prop="age" label="年龄"></el-table-column>
                    <el-table-column label="头像">
                        <template #default="scope">
                            <el-image :src="require(`@/assets/img/${scope.row.avatar}`)" :alt="picture"
                                      style="width: 60px; height: 60px;"></el-image>
                        </template>
                    </el-table-column>
                    <el-table-column label="操作">
                        <el-button type="primary" class="detail-btn">编辑</el-button>
                        <el-button type="danger" class="bigDelete-btn">删除</el-button>
                    </el-table-column>
                </el-table>

效果:


加油加油^_^

相关推荐
银发控、2 小时前
MySQL联合索引
数据库·mysql
予枫的编程笔记2 小时前
【MySQL修炼篇】从踩坑到精通:事务隔离级别的3大异常(脏读/幻读/不可重复读)解决方案
数据库·mysql·后端开发·数据库事务·事务隔离级别·rr级别·脏读幻读不可重复读
fanruitian2 小时前
uniapp android开发 测试板本与发行版本
前端·javascript·uni-app
rayufo2 小时前
【工具】列出指定文件夹下所有的目录和文件
开发语言·前端·python
RANCE_atttackkk2 小时前
[Java]实现使用邮箱找回密码的功能
java·开发语言·前端·spring boot·intellij-idea·idea
一起养小猫3 小时前
Flutter for OpenHarmony 实战:记账应用数据统计与可视化
开发语言·jvm·数据库·flutter·信息可视化·harmonyos
世界尽头与你3 小时前
(修复方案)CVE-2023-22047: Oracle PeopleSoft Enterprise PeopleTools 未授权访问漏洞
数据库·安全·oracle·渗透测试
韩立学长3 小时前
【开题答辩实录分享】以《智能大学宿舍管理系统的设计与实现》为例进行选题答辩实录分享
数据库·spring boot·后端
Henry Zhu1234 小时前
数据库(五):反规范化
数据库
2501_944525544 小时前
Flutter for OpenHarmony 个人理财管理App实战 - 支出分析页面
android·开发语言·前端·javascript·flutter