鍍金池/ 問答/HTML/ vue 圖片路徑問題

vue 圖片路徑問題

目錄結(jié)構(gòu)如下圖片描述

1.我試著直接往index.html里面放圖片,用static里絕對路徑可以實現(xiàn),但是加載assets里的圖片就不行,相對路徑也沒用,html文件如果想直接加載assets里面的圖片怎么實現(xiàn)。
2.還有是main.js里面掛載app,

import tImg from './assets/logo.png'
new Vue({
  router,
  data(){
      return {
        imgUrl:'./assets/logo.png'
//        imgUrl:tImg
      }
  },
  mounted(){
      console.log(tImg)
  },
  template: `
    <div id="app">
      <h1>Route props</h1>
      <img src="${tImg}">
      <img src="${this.imgUrl}">//無效,直接訪問imgUrl會報未定義
       <img src="./assets/logo.png">//無效
      <img src="../static/logo.png">
      <router-view class="view" foo="123"></router-view>
    </div>
  `
}).$mount('#app')

如果不用字符串模板的話,可以直接相對路徑引用圖片轉(zhuǎn)base64引入。但是用上面的字符串模板,無論是data里面的路徑還是直接的相對路徑都找不到圖片,是我的寫法有問題嗎。
config配置文件我直接用的vue-cli沒有變。

回答
編輯回答
心上人

vue在打包時只會將static下面的圖片保留,assets目錄下的圖片會轉(zhuǎn)換成base64,直接打包到j(luò)s文件中,所以你用字符串是讀取不到圖片的

2017年1月13日 08:40
編輯回答
掛念你

你想通過imgUrl保存圖片路徑,然后使用<img>標(biāo)簽去展示圖片的話,有幾種方法:

  1. 把圖片放在src同級的static文件夾下。
  2. 把圖片放在cdn上,把網(wǎng)絡(luò)地址存在imgUrl里,然后直接<img :src="imgUrl">去展示。
  3. 圖片放在assets文件夾,然后在data里面require進圖片
    此時,data() {

     imgUrl:require('./assets/logo.png')

    }
    然后<img :src="imgUrl">去展示即可。

2017年4月29日 19:36