Vue中定義src在img標(biāo)簽使用時(shí)加載不出來(lái)的解決
Vue中定義src在img標(biāo)簽使用時(shí)加載不出來(lái)
問(wèn)題
路徑正確,但是圖片加載不出來(lái),如下示例:
<!--vue3的語(yǔ)法,vue2類似--> <template> <img :src=""/> </template> <script setup> import {ref} from 'vue'; const src = ref('圖片路徑'); </script>
代碼和路徑都沒(méi)問(wèn)題,發(fā)現(xiàn)圖片并未顯示
解決一:使用require引入圖片(commonJs語(yǔ)法)
如果項(xiàng)目中使用的是vite,vite中是不支持require引用的??刂婆_(tái)報(bào)錯(cuò):require is not defined
這個(gè)時(shí)候就需要下載commonJs包
// 下載安裝commonjs包--vite3 yarn add vite-plugin-commonjs // vite2中可以安裝這個(gè) npm i @rollup/plugin-commonjs //2.在vite.config.ts配置中添加該插件(如果是js就換成js版的) import commonjs from '@rollup/plugin-commonjs'; const plugins = [ commonjs() as any,// 要放在第一行,否則不生效 ];
解決二(使用vite的話,推薦這種方案)
// import.meta.url是當(dāng)前模塊的url,和圖片的相對(duì)路徑合并就是一個(gè)完整的URL const list = ref( [{ src: new URL('相對(duì)路徑', import.meta.url).href, }] )
Vue中img標(biāo)簽的src屬性總結(jié)
初步接觸vue框架時(shí),好多朋友使用img標(biāo)簽時(shí),設(shè)置動(dòng)態(tài)src屬性時(shí),可能都會(huì)遇到路徑不生效的問(wèn)題,咱們廢話不多說(shuō),開(kāi)整!!!
img標(biāo)簽引用資源圖片
一般不需要webpack處理的資源放在static,需要經(jīng)過(guò)處理的放在assets
1.不需要webpack處理的圖片放在static
不需要webpack處理的圖片,直接使用絕對(duì)路徑調(diào)用圖片,如"/static/xx/xxx.png"
栗子
- html代碼
<img v-bind:src="imgUrl"/>
- js代碼
data(){ return{ imgUrl:"/static/logo.png" } }
成功讀取到了logo.png. 執(zhí)行npm run build后查看dist文件,發(fā)現(xiàn)logo.png原封不動(dòng)地放在了根目錄下。
2.需要webpack處理的圖片放在assets
可以使用import還是require進(jìn)行引入.import為es6語(yǔ)法,require為commonJS形式.
- 栗子1
<img class="logo-img" src="@/assets/images/logo.png" alt="logo" />
- 栗子2
<img :src="require('@/assets/images/sidederLogo.png')" class="sidebar-logo">
- 栗子3
//HTML1 <img class="logo-img" :src="imgUrl" alt="logo" /> //JS data(){ return{ imgUrl:require('./assets/logo.png') } }
也可以直接引用網(wǎng)絡(luò)路徑
//HTML1 <img class="logo-img" :src="imgUrl" alt="logo" /> //JS data(){ return{ imgUrl: 'https://wpimg.wallstcn.com/69a1c46c-eb1c-4b46-8bd4-e9e686ef5251.png' } }
最后
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue入門之?dāng)?shù)據(jù)綁定(小結(jié))
本篇文章主要介紹了探索Vue高階組件的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01vue3清空l(shuí)et?arr?=?reactive([])的實(shí)現(xiàn)示例
本文主要介紹了vue3清空l(shuí)et?arr?=?reactive([])的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03vue學(xué)習(xí)之Vue-Router用法實(shí)例分析
這篇文章主要介紹了vue學(xué)習(xí)之Vue-Router用法,結(jié)合實(shí)例形式分析了Vue-Router路由原理與常見(jiàn)操作技巧,需要的朋友可以參考下2020-01-01Vue.js中computed屬性高效的數(shù)據(jù)處理案例
computed是Vue中一個(gè)計(jì)算屬性,它可以根據(jù)依賴的數(shù)據(jù)動(dòng)態(tài)計(jì)算出一個(gè)新的值,并將其緩存起來(lái),這篇文章主要給大家介紹了關(guān)于Vue.js中computed屬性高效的數(shù)據(jù)處理的相關(guān)資料,需要的朋友可以參考下2024-09-09Vite配置路徑別名的簡(jiǎn)單實(shí)現(xiàn)方法
Vite項(xiàng)目中我們可以手動(dòng)將src路徑設(shè)置**@**路徑別名,可以省下很多引入路徑的冗余路徑,下面這篇文章主要給大家介紹了關(guān)于Vite配置路徑別名的簡(jiǎn)單實(shí)現(xiàn)方法,需要的朋友可以參考下2023-04-04elementui中el-row的el-col排列混亂問(wèn)題及解決
這篇文章主要介紹了elementui中el-row的el-col排列混亂問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08vue通過(guò)笛卡兒積實(shí)現(xiàn)sku庫(kù)存配置方式
這篇文章主要介紹了vue通過(guò)笛卡兒積實(shí)現(xiàn)sku庫(kù)存配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04