<img :src=`~@/assets/images/${item.imgUrl}` alt="" /> 请问这样做为什么不对
时间: 2023-12-14 18:03:29 浏览: 169
这段代码使用的是 Vue.js 的语法,`:src` 是 Vue.js 绑定属性的一种方式,用于将数据绑定到元素的 `src` 属性上。
在这里,`~@` 是 Webpack 的别名,用于指向项目根目录。但是在模板字符串中使用别名时,Webpack 会将这个别名视为字符串的一部分,而不是解析成真正的路径。因此,你需要在模板字符串中使用 `require` 函数,将别名转换成真正的路径,例如:
```
<img :src="require(`@/assets/images/${item.imgUrl}`)" alt="" />
```
在这里,`@` 也是 Webpack 的别名,指向 `src` 目录,所以这里使用 `@` 代替了 `~@`。
这样做可以让 Webpack 在打包时正确地解析路径,并将图片打包到正确的位置。
相关问题
<template> <div class="home"> <div class="top"> <mt-swipe :auto="3000"> <mt-swipe-item> <img src="../assets/images/s1.jpg" alt /> </mt-swipe-item> <mt-swipe-item> <img src="../assets/images/s2.jpg" alt /> </mt-swipe-item> <mt-swipe-item> <img src="../assets/images/s3.jpg" alt /> </mt-swipe-item> </mt-swipe> </div> <div class="mui"> <div class="ll"> <el-row type="flex" class="row-bg" justify="space-between"> <el-col :span="6"> <router-link :to="{ name: 'news_list' }" class="title"> <img src="../assets/images/menu1.png" alt=""> <div class="grid-content bg-purple">新闻资讯</div> </router-link> </el-col> <el-col :span="6"> <router-link :to="{ name: 'photo_list' }" class="title"> <img src="../assets/images/menu2.png" alt=""> <div class="grid-content bg-purple-light">图片分享</div> </router-link> </el-col> <el-col :span="6"> <img src="../assets/images/menu3.png" alt=""> <div class="grid-content bg-purple">商品购买</div> </el-col> </el-row> </div> <div class="kk"> <el-row type="flex" class="row-bg" justify="space-between"> <el-col :span="6"> <img src="../assets/images/menu4.png" alt=""> <div class="grid-content bg-purple">留言反馈</div> </el-col> <el-col :span="6"> <img src="../assets/images/menu5.png" alt=""> <div class="grid-content bg-purple-light">视频专区</div> </el-col> <el-col :span="6"> <img src="../assets/images/menu6.png" alt=""> <div class="grid-content bg-purple">联系我们</div> </el-col> </el-row> </div> </div> </div> </template> <script>
这是一个Vue.js的组件,包含一个顶部的图片轮播和一个菜单区域。图片轮播使用了第三方组件mt-swipe,菜单区域使用了Element UI的el-row和el-col组件。其中新闻资讯和图片分享使用了Vue Router的router-link组件进行路由跳转。留言反馈、视频专区、联系我们暂未添加路由跳转。
<template v-slot="{ row }"> <div class="cell-center button--default" @click="toDeatil(row.F_card_id)"> <img src="@/assets/images/student-list/icon-detail.png" alt="" /> </div> <div class="cell-center button--default" @click="toDeatil(row.F_card_id)"> <img src="@/assets/images/student-list/icon-detail.png" alt="" /> </div> </template> 怎么加display:flax
你可以在包裹这两个 div 的最外层元素上添加 `display: flex` 样式来使其变为 flex 布局,例如:
```html
<template v-slot="{ row }">
<div class="flex-container">
<div class="cell-center button--default" @click="toDeatil(row.F_card_id)">
<img src="@/assets/images/student-list/icon-detail.png" alt="" />
</div>
<div class="cell-center button--default" @click="toDeatil(row.F_card_id)">
<img src="@/assets/images/student-list/icon-detail.png" alt="" />
</div>
</div>
</template>
```
```css
.flex-container {
display: flex;
}
```
阅读全文