vue如何在data中引入圖片的正確路徑

在data中引入圖片正確路徑

今天踩的坑給分享出來。

本來想要在橫版遍歷圖片出來在vue中自己做輪播,結果發現在data中直接引入路徑是渲染不出來的。

原因是webpack打包無法解析

1.通過import引入路徑才行

如果直接在模板上通過src="../../assets/images/top5.png"是沒有問題的

想通過data裡的引入路徑 ,再:src綁定就不能直接把"../../assets/images/top5.png"放到data中,否則webpack打包無法解析

需要通過import引入再放到data中

如下才能渲染出來

<template>
 <div class="big-top"  >
            <img alt="" v-for="(item,index) in gotop" :key="index" :src="item" >
 </div>
<//template>
<script>
import top5 from "../../assets/images/top5.png"
import top4 from "../../assets/images/top4.png"
import top3 from "../../assets/images/top3.png"
import top2 from "../../assets/images/top2.png"
import top1 from "../../assets/images/top1.png"
export default {
  name: 'Animations',
  data() {
    return {
      gotop:[
        top5 ,
        top4 ,
        top3 ,
        top2 ,
        top1 ,
 
      ]
    }
</scriopt>

2.通過require更方便

在data中定義a的值為1就可以動態改變要切換的圖片

require(`../works/assets/${this.a}.png`);

3.在ui上直接動態也要通過require

<li v-for="(i,a) in imgs" :key="a"> <a><img :src="require('../../assets/'+i+'.png')" alt=""></a></li>

vue引入圖片路徑問題

方法一

直接將你的圖片源文件放在項目目錄的static或public文件夾裡,然後和正常寫圖片路徑那樣寫就可以瞭

方法二

文件放在asset中,需要將路徑轉換為編譯打包後的路徑。

如果是直接在img標簽或者css中使用,可以直接引入路徑,打包會處理

但是如果是作為字符串的形式使用,需要使用request 或import的方式來引入,加入打包行列

imageUrl: require('../../assets/logo.png')
import img from "../../assets/logo.png";

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。 

推薦閱讀: