解决vuecli3中img src 的引入问题


Posted in Javascript onAugust 04, 2020

最近公司要做一个在线ps 的项目 但是后台没写完, 我在用本地图片上传预览的时候 发现图片不能显示, 解决的办法 是

//页面的结构
 <div class="workspace" >
   <img :src='img'>
 </div>
export default {
 data() {
 return {
  img:require('../../assets/fapiao.jpeg'),
  //这里只能使用require的方式去使用 如果img 是数组, 就用 
  //[require('../../assets/fapiao1.jpeg'),
  //require('../../assets/fapiao2.jpeg'),
  //require('../../assets/fapiao3.jpeg').....]
  fileList: []
 };
 },
}

之前我用了绝对路径和 相对路径 都没有办法实现, 后来查官方文档是因为没有存放静态的asset 文件了 ,静态现在存放在public 的里面. 但是我在public里面去创建一个img 的文件,去放置图片,依然不可以. 所以 三种办法里面 只有require 使用vuecli3 ,

如果大家有好的解决办法 可以一起分享

1、在模板中直接引入图片资源(这种一般是@ 或者./ 去引入)

2、将图片资源放在static文件夹下

3、图片资源在assets文件夹下,data中必须用require加载,否则会当成字符串来处理

(我自己目前就是放在assets 里面. 因为是本地上传的 在做假数据的时候准备做一个预览,或者说以后的默认图片就是它了)

第二种,只要给图片放在static文件夹下即可:原因如下

这里在使用vuecli脚手脚构建工具,目录下会生成一个static目录,表示的是静态目录,推荐大家将img 存放在这个目录下,那么在webpack编译以后,依旧是可以获取到这个目录下的路径,这样就解决了路径不符而导致图片加载不出来的问题!当然项目中用的一般都是绝对路径,少数图片的话,这种方式挺好

但是 重点: vuecli3 没有static 啊!!!

=======补充

<ul>
   <li v-for="(item,index) in src" :key="index" @click="jump">
   <img :src="item" alt>
   </li>
 </ul>
export default {
 data() {
 return {
  centerDialogVisible: false,
  form: {
  LoginName: "",
  PassWord: ""
  },
  rules: {
  LoginName: [
   { required: true, message: "请输入用户名", trigger: "blur" }
  ],
  PassWord: [{ required: true, message: "请输入密码", trigger: "blur" }]
  },
  message: "",
  src: [
  require("../assets/imgs/001.jpg"),
  require("../assets/imgs/002.jpg"),
  require("../assets/imgs/003.jpg"),
  require("../assets/imgs/004.jpg"),
  require("../assets/imgs/005.jpg")
  ]
 };
 },

完美的动态绑定, Gong智障继续加油 哈哈哈哈~!!!

再这个页面上接着补充一个 如果router-link 去页面跳转的怎么加配置

<ul>
   <li v-for="(item,index) in src" :key="index" @click="jump(item.address)" :plain="true">
   <img :src="item.img" alt>
   </li>
  
 </ul>
export default {
 data() {
 return {
  centerDialogVisible: false,
  src: [
  { img: require("../assets/imgs/001.jpg"), address: "taxplayerinfo" },
  { img: require("../assets/imgs/002.jpg"), address: "taxsheet" },
  { img: require("../assets/imgs/003.jpg"), address: "search" },
  { img: require("../assets/imgs/004.jpg"), address: "home" }
  ]
 };
 },
 methods: {
 jump(address) {
  this.$router.push({ name: address });
 }
 }
};

补充知识:vue-cli3.0 图片放在public,vue打包部署非根目录时,图片引入错误

解决办法:

方法1. 修改nginx 配置,以部署目录espace为例

upstream a.xx.com{
 server 127.0.0.1:8081;
}

server {
 listen 80;
 server_name a.xx.com;
 location /{
  proxy_pass http://a.xx.com;
 }
 location ^~/images/ {
  proxy_redirect off;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_pass http://127.0.0.1:8001/images/;
 }
 location ^~/espace/ {
  proxy_redirect off;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_pass http://127.0.0.1:8001/;
 }
}

方法2. 修改文件目录,将文件放于src/assets/images

vue.config.js

let path = require('path')

function resolve(dir) {
 return path.join(__dirname, dir)
}
module.exports = {
 chainWebpack: config => {
  config.resolve.alias.set('@', resolve('src'));
 }
}

图片引入

<img src="@/assets/images/icon_file.png">
.check_box a.active::after {
 background: url(~@/assets/images/check_box.png) no-repeat center;
}

以上这篇解决vuecli3中img src 的引入问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 字符串操作函数
Jul 25 Javascript
浏览器常用高宽的jquery插件
Feb 24 Javascript
在javascript中如何得到中英文混合字符串的长度
Jan 17 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
Jul 15 Javascript
详细解读JavaScript的跨浏览器事件处理
Aug 12 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
Apr 10 Javascript
Vuejs中使用markdown服务器端渲染的示例
Nov 22 Javascript
使用vue 国际化i18n 实现多实现语言切换功能
Oct 11 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
Apr 17 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
Jun 10 jQuery
JS实现滑动插件
Jan 15 Javascript
通过实例解析javascript Date对象属性及方法
Nov 04 Javascript
简介JavaScript错误处理机制
Aug 04 #Javascript
vue 出现data-v-xxx的原因及解决
Aug 04 #Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
Aug 04 #Javascript
vue 实现根据data中的属性值来设置不同的样式
Aug 04 #Javascript
解决Vue中使用keepAlive不缓存问题
Aug 04 #Javascript
vue根据条件不同显示不同按钮的操作
Aug 04 #Javascript
如何在Vue.JS中使用图标组件
Aug 04 #Javascript
You might like
php生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
php类常量用法实例分析
2015/07/09 PHP
JS与框架页的操作代码
2010/01/17 Javascript
jquery 经典动画菜单效果代码
2010/01/26 Javascript
24款非常有用的 jQuery 插件分享
2011/04/06 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
2017/07/13 Javascript
vue引入swiper插件的使用实例
2017/07/19 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
详解vue项目中实现图片裁剪功能
2019/06/07 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
2019/08/22 Javascript
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
Python生成随机密码的方法
2017/06/16 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
浅谈Python中的全局锁(GIL)问题
2019/01/11 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
html5 的a标签 Href 拨电话的写法
2013/11/04 HTML / CSS
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
C#面试题问题集
2016/04/02 面试题
团委竞选演讲稿
2014/04/24 职场文书
python实现简单反弹球游戏
2021/04/12 Python
何时使用Map来代替普通的JS对象
2021/04/29 Javascript