解决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题目,重写函数让其无限相加
Feb 15 Javascript
JS获取当前脚本文件的绝对路径
Mar 02 Javascript
javascript中错误使用var造成undefined
Mar 31 Javascript
基于js实现的限制文本框只可以输入数字
Dec 05 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
Mar 14 Javascript
基于iScroll实现下拉刷新和上滑加载效果
Jul 18 Javascript
node.js学习之事件模块Events的使用示例
Sep 28 Javascript
js实现左右两侧浮动广告
Jul 09 Javascript
vue项目中实现的微信分享功能示例
Jan 21 Javascript
vue项目中使用scss的方法步骤
May 16 Javascript
优雅的处理vue项目异常实战记录
Jun 05 Javascript
适合后台管理系统开发的12个前端框架(小结)
Jun 29 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 form 表单传参明细研究
2009/07/17 PHP
PHP 数组排序方法总结 推荐收藏
2010/06/30 PHP
php Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
php使用scandir()函数扫描指定目录下所有文件示例
2019/06/08 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
js 替换
2008/02/19 Javascript
javascript写的异步加载js文件函数(支持数组传参)
2014/06/07 Javascript
html的DOM中document对象anchors集合用法实例
2015/01/21 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
Bootstrap基本组件学习笔记之进度条(15)
2016/12/08 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
浅谈Node模块系统及其模式
2017/11/17 Javascript
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
2018/09/27 Javascript
微信小程序基于高德地图查找位置并显示文字
2019/10/30 Javascript
0基础学习前端开发的一些建议
2020/07/14 Javascript
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
python实现zabbix发送短信脚本
2018/09/17 Python
TensorFlow实现简单的CNN的方法
2019/07/18 Python
Python响应对象text属性乱码解决方案
2020/03/31 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
苹果香港官方商城:Apple香港
2016/09/14 全球购物
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
师德师风的心得体会
2014/09/02 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
比较node.js和Deno
2021/04/27 Javascript
MySQL读取JSON转换的方式
2022/03/18 MySQL
Python OpenCV之常用滤波器使用详解
2022/04/07 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android
windows11选中自动复制怎么开启? Win11自动复制所选内容的方法
2022/07/23 数码科技