解决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 相关文章推荐
JavaScript实现禁止后退的方法
Dec 27 Javascript
悄悄用脚本检查你访问过哪些网站的代码
Dec 04 Javascript
js判断出两个字符串最大子串的函数实现方法
Nov 01 Javascript
微信小程序学习(4)-系统配置app.json详解
Jan 12 Javascript
vue移动UI框架滑动加载数据的方法
Mar 12 Javascript
基于vue中css预加载使用sass的配置方式详解
Mar 13 Javascript
JavaScript代码实现txt文件的上传预览功能
Mar 27 Javascript
Node.js Buffer用法解读
May 18 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
Aug 22 Javascript
jQuery 操作 HTML 元素和属性的方法
Nov 12 jQuery
vue form check 表单验证的实现代码
Dec 09 Javascript
vue中的可拖拽宽度div的实现示例
Apr 08 Vue.js
简介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站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
详解Laravel视图间共享数据与视图Composer
2016/08/04 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
2017/02/17 PHP
PHP聊天室简单实现方法详解
2018/12/08 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
推荐10个2014年最佳的jQuery视频插件
2014/11/12 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
对称加密与非对称加密优缺点详解
2017/02/06 Javascript
angular中的cookie读写方法
2017/08/02 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
2017/11/15 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
详解使用React制作一个模态框
2019/03/14 Javascript
vue中使用vue-cli接入融云实现即时通信
2019/04/19 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
使用Python的PEAK来适配协议的教程
2015/04/14 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
护理专业本科生自荐信
2013/10/01 职场文书
租房协议书
2014/04/10 职场文书
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server