vue3.x 创建的项目使用element-ui el-image组件图片无法显示

JoeBlackzqq 2019-08-08 05:31:40
环境:

[zcm@ele 2]$node -v
v12.6.0
[zcm@ele 3]$npm -v
6.9.0
[zcm@ele 4]$cnpm -v
cnpm@6.1.0 (/usr/local/lib/node_modules/cnpm/lib/parse_argv.js)
npm@6.10.2 (/usr/local/lib/node_modules/cnpm/node_modules/npm/lib/npm.js)
node@12.6.0 (/usr/local/Cellar/node/12.6.0/bin/node)
npminstall@3.22.1 (/usr/local/lib/node_modules/cnpm/node_modules/npminstall/lib/index.js)
prefix=/usr/local
darwin x64 16.7.0
registry=https://r.npm.taobao.org

[zcm@ele 6]$vue -V
3.9.2



创建项目: vue create ele

cd ele

cnpm i

npm run serve

安装element: vue add element
修改HelloWorld.vue:


<template>
<div class="hello">
<h1>{{ msg }}</h1>
<div>
<img width=100 src=".././assets/logo.png" alt="he.logo">
</div>
<div class="div_el">
<el-image src="../assets/logo.png" alt="sorry"></el-image>
</div>
</div>
</template>

<script>
export default {
name: 'HelloWorld',
props: {
msg: String
}
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {
margin: 40px 0 0;
}

a {
color: #42b983;
}

.hello {
margin: auto;
}

.hello img {
border: 1px dashed red;
}

.div_el {
border: 1px solid green;
width: 200px;
height: 100px;
}
</style>



浏览器运行,el-image对应的图片加载失败,求解!

...全文
6170 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cathy_S 2020-09-18
  • 打赏
  • 举报
回复
请问楼主是用的vue cli3还是vue.js3?因为vue.js3的话似乎不能兼容elementUI了,页面打印那里会报错。如果是的话,想知道怎么兼容的?main.js里不能写Vue.use(ElementUI),加到createApp(App)后面也不可以,全局API叫createApp。
import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";

createApp(App)
  .use(store)
  .use(router)
  .mount("#app");
yssa1125001 2020-05-18
  • 打赏
  • 举报
回复
引用 14 楼 奔跑的痕迹 的回复:
可以将src挂载到data中呀,如:
     
 <template>
        <div class="hello">
          <h1><el-image :src="imgurl" alt="sorry"></h1>
          <div class="div_el" style="width: 300px;height: 300px;">
            <el-image :src="imgurl" alt="sorry"></el-image>
          </div>
        </div>
      </template>

data() {
      return {
        caption: "接口审核",
        imgurl:require('../../assets/images/login/login-back-img.jpg')
      }
    },
这种方式是最符合实际的,也是有效的
yssa1125001 2020-05-18
  • 打赏
  • 举报
回复
引用 8 楼 zzzzzds 的回复:
应该是el-image组件自带的一个bug,你这样写两次请求的图片url是不一样的。 你把 src="@/assets/logo.png" 换成 :src="require('@/assets/logo.png')" 就可以了。
这样我试了,确实有效
张艺名 2019-11-25
  • 打赏
  • 举报
回复
<el-image :src="require('~/assets/images/nopic.png')"></el-image>
JoeBlackzqq 2019-08-13
  • 打赏
  • 举报
回复
引用 15 楼 zzzzzds 的回复:
[quote=引用 12 楼 JoeBlackzqq 的回复:]
[quote=引用 8 楼 zzzzzds 的回复:]
应该是el-image组件自带的一个bug,你这样写两次请求的图片url是不一样的。
你把
src="@/assets/logo.png"
换成
:src="require('@/assets/logo.png')"
就可以了。


你这思路是对了, 但是答案是错的.

""里的东西, 仅是字符串, 它哪知道你这是js代码呀![/quote]
若你觉得这样不行,那你可以在data里面声明一个变量imgURL啥的,挂载一下也行啊,看你个人喜好了[/quote]

完全没问题,先有答案,再谈优化,剩下的小事我自己可以搞定
JoeBlackzqq 2019-08-13
  • 打赏
  • 举报
回复
引用 14 楼 马璟 的回复:
可以将src挂载到data中呀,如:
     
<template>
<div class="hello">
<h1><el-image :src="imgurl" alt="sorry"></h1>
<div class="div_el" style="width: 300px;height: 300px;">
<el-image :src="imgurl" alt="sorry"></el-image>
</div>
</div>
</template>


data() {
return {
caption: "接口审核",
imgurl:require('../../assets/images/login/login-back-img.jpg')
}
},



谢谢,实际操作应该是你这种思路!
zzzzzds 2019-08-12
  • 打赏
  • 举报
回复
引用 12 楼 JoeBlackzqq 的回复:
[quote=引用 8 楼 zzzzzds 的回复:] 应该是el-image组件自带的一个bug,你这样写两次请求的图片url是不一样的。 你把 src="@/assets/logo.png" 换成 :src="require('@/assets/logo.png')" 就可以了。
你这思路是对了, 但是答案是错的. ""里的东西, 仅是字符串, 它哪知道你这是js代码呀![/quote] 若你觉得这样不行,那你可以在data里面声明一个变量imgURL啥的,挂载一下也行啊,看你个人喜好了
奔跑的痕迹 2019-08-12
  • 打赏
  • 举报
回复
可以将src挂载到data中呀,如:
     
 <template>
        <div class="hello">
          <h1><el-image :src="imgurl" alt="sorry"></h1>
          <div class="div_el" style="width: 300px;height: 300px;">
            <el-image :src="imgurl" alt="sorry"></el-image>
          </div>
        </div>
      </template>

data() {
      return {
        caption: "接口审核",
        imgurl:require('../../assets/images/login/login-back-img.jpg')
      }
    },
JoeBlackzqq 2019-08-09
  • 打赏
  • 举报
回复
引用 8 楼 zzzzzds 的回复:
应该是el-image组件自带的一个bug,你这样写两次请求的图片url是不一样的。
你把
src="@/assets/logo.png"
换成
:src="require('@/assets/logo.png')"
就可以了。


你这思路是对了, 但是答案是错的.

""里的东西, 仅是字符串, 它哪知道你这是js代码呀!
JoeBlackzqq 2019-08-09
  • 打赏
  • 举报
回复
引用 9 楼 DBLDT 的回复:
你使用了nuxt框架吗,还是说你的项目只是vue,如果使用nuxt 访问图片路径可以设置成src="~/assets/logo.png"试试,前提是你确定你项目真的引入element-ui了,还是说你只把element-ui模块添加到项目而没引用它,就直接使用它的组件。


创建项目: vue create ele

cd ele

cnpm i

npm run serve

安装element: vue add element
修改HelloWorld.vue:

这里已经包含了我创建项目到改代码所有的操作步骤了!你想太多了

就是这么几步,你可以在本地试试.

答案的关键是我写的地址没有经过require()处理, webpack打包时把路径换了!就是这么回事
JoeBlackzqq 2019-08-09
  • 打赏
  • 举报
回复
引用 4 楼 追热 的回复:
你img的路径是.././assets/logo.png
和el-img路径../assets/logo.png不一样啊,哪个是对的?有一个写错了吧?


这两个路径不是一个意思吗? ./ 是当前 目录的意思,有相当于没有, 这个不是常识吗?
「已注销」 2019-08-09
  • 打赏
  • 举报
回复
你使用了nuxt框架吗,还是说你的项目只是vue,如果使用nuxt 访问图片路径可以设置成src="~/assets/logo.png"试试,前提是你确定你项目真的引入element-ui了,还是说你只把element-ui模块添加到项目而没引用它,就直接使用它的组件。
zzzzzds 2019-08-09
  • 打赏
  • 举报
回复
应该是el-image组件自带的一个bug,你这样写两次请求的图片url是不一样的。 你把 src="@/assets/logo.png" 换成 :src="require('@/assets/logo.png')" 就可以了。
划水王 2019-08-09
  • 打赏
  • 举报
回复
你直接用ctrl加上鼠标点击你图片的路径看下是否用图片显示出来如果没有显示的话就是路经出错了
風灬雲 2019-08-09
  • 打赏
  • 举报
回复
看下network img 里面两个请求的url是否一致就能找到原因了
迷阵 2019-08-09
  • 打赏
  • 举报
回复
引用 3 楼 JoeBlackzqq 的回复:
[quote=引用 2 楼 迷阵 的回复:] 用绝对路径试试?不行的话看看图片还在不在那个文件夹??
图片绝对在,你对比下,与img标签所使用的路径其实是一样的![/quote] 绝对路径也不行嘛?可以的话 就是相对路径哪里有问题。
追热 2019-08-09
  • 打赏
  • 举报
回复
你img的路径是.././assets/logo.png 和el-img路径../assets/logo.png不一样啊,哪个是对的?有一个写错了吧?
JoeBlackzqq 2019-08-09
  • 打赏
  • 举报
回复
引用 2 楼 迷阵 的回复:
用绝对路径试试?不行的话看看图片还在不在那个文件夹??


图片绝对在,你对比下,与img标签所使用的路径其实是一样的!
迷阵 2019-08-09
  • 打赏
  • 举报
回复
用绝对路径试试?不行的话看看图片还在不在那个文件夹??
JoeBlackzqq 2019-08-08
  • 打赏
  • 举报
回复
关于el-image的路径,尝试过多种,依然无法显示, 很是奇怪

../assets/logo.png
./assets/logo.png
@../assets/logo.png
@./assets/logo.png
@/assets/logo.png

61,129

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧