解决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窗口功能指南之在窗口中书写内容
Jul 21 Javascript
jQuery的Ajax时无响应数据的解决方法
May 25 Javascript
使用js判断控件是否获得焦点
Jan 03 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
May 08 Javascript
如何消除inline-block属性带来的标签间间隙
Mar 31 Javascript
微信小程序 页面跳转传递值几种方法详解
Jan 12 Javascript
浅谈vue项目如何打包扔向服务器
May 08 Javascript
JavaScript中关于base64的一些事
May 06 Javascript
VUE+elementui面包屑实现动态路由详解
Nov 04 Javascript
node.JS路径解析之PATH模块使用方法详解
Feb 06 Javascript
Javascript作用域和作用域链原理解析
Mar 03 Javascript
JQuery实现折叠式菜单的详细代码
Jun 03 jQuery
简介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 简单数组排序实现代码
2009/08/05 PHP
thinkphp实现多语言功能(语言包)
2014/03/04 PHP
php多重接口的实现方法
2015/06/20 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
thinkPHP中_initialize方法实例分析
2016/12/05 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
javascript 用原型继承来实现对象系统
2010/03/22 Javascript
15 个 JavaScript Web UI 库
2010/05/19 Javascript
js实时监听文本框状态的方法
2011/04/26 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
vue-router 前端路由之路由传值的方式详解
2019/04/30 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
[01:28:44]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第一场 1月10日
2021/03/11 DOTA
对于Python的框架中一些会话程序的管理
2015/04/20 Python
python 读文件,然后转化为矩阵的实例
2018/04/23 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
Python给图像添加噪声具体操作
2019/03/03 Python
荷兰包包购物网站:The Little Green Bag
2018/03/17 全球购物
伦敦著名的运动鞋综合商店:Footpatrol
2019/03/25 全球购物
洗煤厂厂长岗位职责
2014/01/03 职场文书
顶撞领导检讨书
2014/01/29 职场文书
小学运动会入场式解说词
2014/02/18 职场文书
党建示范点实施方案
2014/03/12 职场文书
社区两委对照检查材料
2014/08/23 职场文书
2014年依法行政工作总结
2014/11/19 职场文书
复兴之路观后感
2015/06/02 职场文书
实践论读书笔记
2015/06/29 职场文书
高三数学复习备考教学反思
2016/02/18 职场文书
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python