Nuxt3動(dòng)態(tài)導(dǎo)入圖片(本地)src實(shí)現(xiàn)過(guò)程
我的解決路程
反正踩了很久的坑,解決方法寫(xiě)在最下面,直接看下面即可
- firstDefaultImg.value = `~/assets/tswstyle/images/company.png`;本地和打包后都看不到圖
- firstDefaultImg.value = `_nuxt/assets/tswstyle/images/company.png`;本地看的到,打包后無(wú)效
解決
寫(xiě)在public下:firstDefaultImg.value = `tswstyle/images/company.png`;
nuxt3 不再支持 require 動(dòng)態(tài)導(dǎo)入資源
直接這樣導(dǎo)入,瀏覽器報(bào)錯(cuò):
ReferenceError: require is not defined

一般引入圖片時(shí):
圖片在根目錄下 assets/tswstyle/images 文件夾下,以下在template模板引入是正確的:

瀏覽器看到的格式是:

本地開(kāi)發(fā)環(huán)境(圖片正常顯示):

build打包之后(生產(chǎn)環(huán)境)看到的(圖片正常顯示):

問(wèn)題:但是我這個(gè)可能需要好幾個(gè)圖片來(lái)回替換,不想寫(xiě)在 template 模板中:

我就想直接在 script 內(nèi)寫(xiě):
<img :src="firstData.cover ? firstData.cover : firstDefaultImg" alt="" />
const firstDefaultImg = ref(''); //沒(méi)有圖片就用這個(gè)默認(rèn)的圖片地址(字符串)
//因?yàn)槭?tab切換的,所以切換的tab不同,默認(rèn)圖片也不同
switch (active.value) {
case 1:
firstDefaultImg.value = `~/assets/tswstyle/images/company.png`;
break;
case 2:
firstDefaultImg.value = `~/assets/tswstyle/images/govbusCommunication.png`;
break;
case 3:
firstDefaultImg.value = `~/assets/tswstyle/images/Partyactivity.jpg`;
break;
case 4:
firstDefaultImg.value = `~/assets/tswstyle/images/welfare.png`;
break;
case 5:
firstDefaultImg.value = `~/assets/tswstyle/images/recruitImg.png`;
break;
default:
break;
}但是在瀏覽器中看到的圖片地址并沒(méi)有轉(zhuǎn)化(依然是我寫(xiě)的字符串):


根據(jù)瀏覽器生成的 _nuxt,我就將賦值地址改為(圖片的地址沒(méi)動(dòng),還是在根目錄下的assets/tswstyle/images文件夾中):
firstDefaultImg.value = `_nuxt/assets/tswstyle/images/company.png`;
在本地確實(shí)能看到圖片:

瀏覽器中:


但是build打包之后,圖片顯示不出來(lái):

都是以原本的字符串展示(沒(méi)有解析成對(duì)應(yīng)的地址)

解決方法:圖片可以直接搬到 public,根目錄下的 public/tswstyle/images 文件夾下:

直接這樣寫(xiě)路徑即可:
firstDefaultImg.value = `tswstyle/images/company.png`;

本地瀏覽器(可以自己解析),圖片展示沒(méi)問(wèn)題:


build打包之后,生產(chǎn)環(huán)境下(圖片展示沒(méi)問(wèn)題):

瀏覽器的地址顯示:


補(bǔ)充:

坑:引入 public 時(shí),上面這個(gè)文件的地址
<img src="index/commerceIntroduce.png" alt="" />
這樣引入, npm run dev 可以看到加載的文件,但是run build 打包會(huì)出錯(cuò):

引入public 靜態(tài)資源還是要用下面這種寫(xiě)法引入:
- 方法一:
<img src="~/public/index/commerceIntroduce.png" alt="" />
- 方法二:
<img :src=" 'index/commerceIntroduce.png' " alt="" />
這個(gè)代碼,其實(shí)是把他動(dòng)態(tài)引入,跟最上面的一樣,讓vue幫我們?nèi)ソ馕?,還是可以正常打包上線的
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Nuxt3:拉取項(xiàng)目模板失敗問(wèn)題以及解決
- Nuxt3項(xiàng)目中問(wèn)題匯總之刷新頁(yè)面useFetch無(wú)返回解決
- Nuxt3嵌套路由,報(bào)錯(cuò)Failed?to?resolve?component:?NuxtChild的解決
- Nuxt3?布局layouts和NuxtLayout的使用詳解
- Nuxt3+ElementPlus構(gòu)建打包部署全過(guò)程
- Nuxt3重點(diǎn)特性使用舉例問(wèn)題記錄
- Nuxt3項(xiàng)目搭建過(guò)程(Nuxt3+element-plus+scss詳細(xì)步驟)
- nuxt3中server routes的使用詳解
相關(guān)文章
vue+highCharts實(shí)現(xiàn)可選范圍的圖表
這篇文章主要為大家詳細(xì)介紹了vue+highCharts實(shí)現(xiàn)可選范圍的圖表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
VUE-ElementUI?時(shí)間區(qū)間選擇器的使用
這篇文章主要介紹了VUE-ElementUI?時(shí)間區(qū)間選擇器的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
vue?長(zhǎng)列表數(shù)據(jù)刷新的實(shí)現(xiàn)及思考
這篇文章主要為大家介紹了vue?長(zhǎng)列表數(shù)據(jù)刷新的實(shí)現(xiàn)及思考,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
vue-cli是什么及創(chuàng)建vue-cli項(xiàng)目的方法
vue-cli是 vue 官方提供的、快速生成 vue 工程化項(xiàng)目的工具,支持創(chuàng)建vue2和vue3的項(xiàng)目,本文給大家詳細(xì)講解vue-cli是什么及創(chuàng)建vue-cli項(xiàng)目的方法,感興趣的朋友跟隨小編一起看看吧2023-04-04
vue項(xiàng)目使用高德地圖時(shí)報(bào)錯(cuò):AMap?is?not?defined解決辦法
這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目使用高德地圖時(shí)報(bào)錯(cuò):AMap?is?not?defined的解決辦法,"AMap is not defined"是一個(gè)錯(cuò)誤提示,意思是在代碼中沒(méi)有找到定義的AMap,需要的朋友可以參考下2023-12-12
Vue常見(jiàn)組件間通信方案及典型應(yīng)用場(chǎng)景詳解
這篇文章主要為大家介紹了Vue常見(jiàn)組件間通信方案及典型應(yīng)用場(chǎng)景詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Vue動(dòng)態(tài)修改頁(yè)面Title(瀏覽器頁(yè)簽名稱(chēng))的三種方法
在開(kāi)發(fā) Vue 項(xiàng)目時(shí),我們經(jīng)常需要根據(jù)不同的頁(yè)面動(dòng)態(tài)修改瀏覽器的頁(yè)簽標(biāo)題(title),那么,如何在 Vue 項(xiàng)目中實(shí)現(xiàn)動(dòng)態(tài)修改 document.title 呢?本文將介紹三種實(shí)用方法,并結(jié)合代碼示例,助你輕松實(shí)現(xiàn),需要的朋友可以參考下2025-03-03
VueJs單頁(yè)應(yīng)用實(shí)現(xiàn)微信網(wǎng)頁(yè)授權(quán)及微信分享功能示例
本篇文章主要介紹了VueJs單頁(yè)應(yīng)用實(shí)現(xiàn)微信網(wǎng)頁(yè)授權(quán)及微信分享功能示例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07
Vue3?源碼分析reactive?readonly實(shí)例
這篇文章主要為大家介紹了Vue3?源碼分析reactive?readonly實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10

