溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

vue css引入asstes中的圖片無法顯示怎么辦

發(fā)布時間:2021-03-22 09:47:12 來源:億速云 閱讀:369 作者:小新 欄目:web開發(fā)

這篇文章給大家分享的是有關(guān)vue css引入asstes中的圖片無法顯示怎么辦的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

這里主要針對的是vuecli2中的一些問題。
vue項目中,常常會有很多的圖片資源,這樣的資源存放位置,通常我們有兩個選擇:1. static,2. assets
關(guān)于這兩者之間的區(qū)別,和如何選擇這里就不多說了!
這里我們來說說assets目錄下存放圖片時,在vue組件的css樣式中引入圖片時將會遇到的一些問題!
正常情況,我們在本地開發(fā)調(diào)試的時候,無論什么樣的方式引入圖片都不會有問題。但是,一大包發(fā)布打線上,就會出現(xiàn)圖片無法加載的情況!
這是因為,出于某些原因,有人修改了config目錄下的index.js文件中的build對象中assetsPublicPath的值,這個值初始化的時候是 斜桿(/),代表資源根目錄,也就是dist目錄下與index.html文件同級。

所以:

第一種方法

修復(fù)的方法就是把這個值改回默認(rèn)值:/

vue css引入asstes中的圖片無法顯示怎么辦

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

vue css引入asstes中的圖片無法顯示怎么辦

index.html中的js和css文件

vue css引入asstes中的圖片無法顯示怎么辦

第二種方法

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

vue css引入asstes中的圖片無法顯示怎么辦

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

vue css引入asstes中的圖片無法顯示怎么辦

index.html中的js和css文件

vue css引入asstes中的圖片無法顯示怎么辦

第三種方法

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

vue css引入asstes中的圖片無法顯示怎么辦

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

vue css引入asstes中的圖片無法顯示怎么辦

這個時候打包出來的路徑,根據(jù)你的assetsPublicPath配置而定了,這里就不舉例了,執(zhí)行查看是否打包正常。

第四種方法

前面三種方案都是說的老項目,已經(jīng)大量的圖片引入,沒有辦法了。但是若果圖片資源不多,或者是新項目,這個時候的話不需要這么麻煩去改打包配置。我們可以從一開始就避免這個問題。對于html中的img標(biāo)簽我們可以通過import的方式先把圖片引入,然后放到data中,在綁定到src上。

import logo from "../assets/logo.png";
data() {
 return {
 logo,
 };
},
<img :src="logo" width="78" height="78" alt="logo">

css中的路徑我們可以通過@來引入(@等價于src目錄)比如:

background: url("@/assets/logo.png") no-repeat;

又或者,直接不要放到asstes目錄下,也可以避免這個問題發(fā)生。

感謝各位的閱讀!關(guān)于“vue css引入asstes中的圖片無法顯示怎么辦”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI