vue css 引入asstes中的圖片無(wú)法顯示的四種解決方法
這里主要針對(duì)的是vuecli2中的一些問(wèn)題。
vue項(xiàng)目中,常常會(huì)有很多的圖片資源,這樣的資源存放位置,通常我們有兩個(gè)選擇:1. static,2. assets
關(guān)于這兩者之間的區(qū)別,和如何選擇這里就不多說(shuō)了!
這里我們來(lái)說(shuō)說(shuō)assets目錄下存放圖片時(shí),在vue組件的css樣式中引入圖片時(shí)將會(huì)遇到的一些問(wèn)題!
正常情況,我們?cè)诒镜亻_發(fā)調(diào)試的時(shí)候,無(wú)論什么樣的方式引入圖片都不會(huì)有問(wèn)題。但是,一大包發(fā)布打線上,就會(huì)出現(xiàn)圖片無(wú)法加載的情況!
這是因?yàn)?,出于某些原因,有人修改了config目錄下的index.js文件中的build對(duì)象中assetsPublicPath的值,這個(gè)值初始化的時(shí)候是 斜桿(/),代表資源根目錄,也就是dist目錄下與index.html文件同級(jí)。
所以:
第一種方法
修復(fù)的方法就是把這個(gè)值改回默認(rèn)值:/

打包出來(lái)的結(jié)果: css文件中background屬性

index.html中的js和css文件

第二種方法
還是修改這個(gè)值斜杠代表的是根目錄,我們換種思路,是不是可以把這里該為絕對(duì)地址呢?答案肯定是可以的具體怎么改呢?舉個(gè)例子,比如我的線上的項(xiàng)目的地址是:http://www.test.com,我們只需要吧之前的斜杠替換成這個(gè)地址就可以了,如圖:

打包出來(lái)的結(jié)果: css文件中background屬性

index.html中的js和css文件

第三種方法
上面也說(shuō)了,可能由于某些原因我們修改了這個(gè)值,為了不影響原有的功能,也是避免造成別新的bug,我們不能修改這個(gè)值,所以我們有了第三種方法。修改build目錄中的uitls文件中的css打包配置,打開utils.js文件直接搜索 ExtractTextPlugin.extract 然后在對(duì)象中添加屬性 publicPath: ‘…/…/' 具體如圖:

這里的層級(jí)(publicPath: ‘…/…/' )具體看你打包后的目錄結(jié)構(gòu),我這里的層級(jí)如下圖,各自根據(jù)自己的情況確定

這個(gè)時(shí)候打包出來(lái)的路徑,根據(jù)你的assetsPublicPath配置而定了,這里就不舉例了,執(zhí)行查看是否打包正常。
第四種方法
前面三種方案都是說(shuō)的老項(xiàng)目,已經(jīng)大量的圖片引入,沒(méi)有辦法了。但是若果圖片資源不多,或者是新項(xiàng)目,這個(gè)時(shí)候的話不需要這么麻煩去改打包配置。我們可以從一開始就避免這個(gè)問(wèn)題。對(duì)于html中的img標(biāo)簽我們可以通過(guò)import的方式先把圖片引入,然后放到data中,在綁定到src上。
import logo from "../assets/logo.png";
data() {
return {
logo,
};
},
<img :src="logo" width="78" height="78" alt="logo">
css中的路徑我們可以通過(guò)@來(lái)引入(@等價(jià)于src目錄)比如:
background: url("@/assets/logo.png") no-repeat;
又或者,直接不要放到asstes目錄下,也可以避免這個(gè)問(wèn)題發(fā)生。
總結(jié)
到此這篇關(guān)于vue css 引入asstes中的圖片無(wú)法顯示的四種解決方法的文章就介紹到這了,更多相關(guān)vue css 引入asstes 圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3+vite中開發(fā)環(huán)境與生產(chǎn)環(huán)境全局變量配置指南
最近在使用vite生成項(xiàng)目,這篇文章主要給大家介紹了關(guān)于vue3+vite中開發(fā)環(huán)境與生產(chǎn)環(huán)境全局變量配置的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
vue?this.$refs.xxx報(bào)錯(cuò)undefined問(wèn)題及解決
這篇文章主要介紹了vue?this.$refs.xxx報(bào)錯(cuò)undefined問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
Vue啟動(dòng)失敗報(bào)錯(cuò):Module?not?found:?Error:?Can‘t?resolve?&apos
這篇文章主要給大家介紹了關(guān)于Vue啟動(dòng)失敗報(bào)錯(cuò):Module?not?found:?Error:?Can‘t?resolve?'less-loader'解決的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
Vue自定義Hook實(shí)現(xiàn)簡(jiǎn)化本地存儲(chǔ)
這篇文章主要為大家詳細(xì)介紹了如何通過(guò)使用 Vue 3 的 Composition API 創(chuàng)建一個(gè)強(qiáng)大而靈活的自定義 Hook,簡(jiǎn)化了在 localStorage 或 sessionStorage 中管理數(shù)據(jù)的流程,需要的可以參考下2023-12-12
vue之el-upload使用FormData多文件同時(shí)上傳問(wèn)題
這篇文章主要介紹了vue之el-upload使用FormData多文件同時(shí)上傳問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
教你在Vue3中使用useStorage輕松實(shí)現(xiàn)localStorage功能
這篇文章主要給大家介紹了關(guān)于如何在Vue3中使用useStorage輕松實(shí)現(xiàn)localStorage功能的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-06-06
Vue如何將當(dāng)前窗口截圖并將數(shù)據(jù)base64轉(zhuǎn)為png格式傳給服務(wù)器
這篇文章主要介紹了Vue如何將當(dāng)前窗口截圖并將數(shù)據(jù)base64轉(zhuǎn)為png格式傳給服務(wù)器,通過(guò)實(shí)例代碼介紹了將當(dāng)前窗口截圖,并將數(shù)據(jù)存儲(chǔ)下來(lái),需要的朋友可以參考下2023-10-10
Vue.js實(shí)現(xiàn)移動(dòng)端短信驗(yàn)證碼功能
現(xiàn)在的短信驗(yàn)證碼一般為4位或6位,則頁(yè)面中會(huì)相應(yīng)的顯示4個(gè)或6個(gè)文本框.好多網(wǎng)站需求都有此功能,今天小編給大家分享基于vue.js實(shí)現(xiàn)移動(dòng)端短信驗(yàn)證碼功能,需要的朋友參考下吧2017-03-03

