解决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 相关文章推荐
鼠标图片振动代码
Jul 06 Javascript
js监听滚动条滚动事件使得某个标签内容始终位于同一位置
Jan 24 Javascript
jQuery实现长按按钮触发事件的方法
Feb 02 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
Jan 26 Javascript
JS实现左右无缝轮播图代码
May 01 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
Jun 02 Javascript
jQuery实现磁力图片跟随效果完整示例
Sep 16 Javascript
bootstrap警告框使用方法解析
Jan 13 Javascript
浅谈Webpack 持久化缓存实践
Mar 22 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
May 16 Javascript
Vue axios 将传递的json数据转为form data的例子
Oct 29 Javascript
gojs实现蚂蚁线动画效果
Feb 18 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数组操作――获取数组最后一个值的方法
2015/04/14 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
解决laravel session失效的问题
2019/10/14 PHP
索趣科技的答案
2007/02/07 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
浅谈Javascript线程及定时机制
2015/07/02 Javascript
纯javascript代码实现计算器功能(三种方法)
2015/09/07 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
Angularjs上传图片实例详解
2017/08/06 Javascript
angular-tree-component的使用详解
2018/07/30 Javascript
Windows下Node爬虫神器Puppeteer安装记
2019/01/09 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
js new Date()实例测试
2019/10/31 Javascript
学习python处理python编码问题
2011/03/13 Python
Python2和Python3.6环境解决共存问题
2018/11/09 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
QML用PathView实现轮播图
2020/06/03 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
J2EE面试题集锦(附答案)
2013/08/16 面试题
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
计算机开发个人求职信范文
2013/09/26 职场文书
实习教师自我鉴定
2013/12/09 职场文书
2014年公务员工作总结
2014/11/18 职场文书
创业计划书之暑假培训班
2019/11/09 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers