亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue3+vite assets動態(tài)引入圖片的三種方法及解決打包后圖片路徑錯誤不顯示的問題

 更新時間:2023年03月20日 09:57:59   作者:Young丶  
這篇文章主要介紹了vue3+vite assets動態(tài)引入圖片的幾種方式,解決打包后圖片路徑錯誤不顯示的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

vite 官方默認的配置,如果資源文件在assets文件夾打包后會把圖片名加上 hash值,但是直接通過 :src="imgSrc"方式引入并不會在打包的時候解析,導致開發(fā)環(huán)境可以正常引入,打包后卻不能顯示的問題

這里我們先看看vite官方文檔的解釋:https://vitejs.bootcss.com/guide/assets.html 

我們看到實際上我們不希望資源文件被wbpack編譯可以把圖片放到public 目錄會更省事,不管是開發(fā)環(huán)境還是生產(chǎn)環(huán)境,可以始終以根目錄保持圖片路徑的一致,這點跟webpack是一致的

img

看到這里,也許問題就解決了,如果在vite確實需要將靜態(tài)文件放在assets,我們再往下看:

這里我們先假設(shè):
靜態(tài)文件目錄:src/assets/images/
我們的目標靜態(tài)文件在 src/assets/images/home/home_icon.png

<img :src="require('@/assets/images/home/home_icon.png')" />

嘗試過require動態(tài)引入, 發(fā)現(xiàn)報錯:require is not defind,這是因為 require 是屬于 Webpack 的方法

第一種方式(適用于處理單個鏈接的資源文件)

import homeIcon from '@/assets/images/home/home_icon.png'
<img :src="homeIcon" />

第二種方式(適用于處理多個鏈接的資源文件)

推薦,這種方式傳入的變量可以動態(tài)傳入文件路徑??!

靜態(tài)資源處理 | Vite 官方中文文檔
new URL() + import.meta.url

這里我們假設(shè):
工具文件目錄: src/util/pub-use.ts
pub-use.ts

// 獲取assets靜態(tài)資源
export default  const getAssetsFile = (url: string) => {
   return new URL(`../assets/images/${url}`, import.meta.url).href
}

使用

import usePub from '@/util/public-use'
setup () {
  const Pub = usePub()
  const getAssetsFile = Pub.getAssetsFile
  return { getAssetsFile }
}

可以包含文件路徑

<img :src="getAssetsFile('/home/home_icon.png')" />

第三種方式(適用于處理多個鏈接的資源文件)

不推薦,這種方式引入的文件必須指定到具體文件夾路徑,傳入的變量中只能為文件名,不能包含文件路徑

使用vite的import.meta.globimport.meta.globEager,兩者的區(qū)別是前者懶加載資源,后者直接引入。

這里我們假設(shè):
工具文件目錄: src/util/pub-use.ts
pub-use.ts

// 獲取assets靜態(tài)資源
export default const getAssetsHomeFile = (url: string) => {
    const path = `../assets/images/home/${url}`;
    const modules = import.meta.globEager("../assets/images/home/*");
    return modules[path].default;
}

使用

import usePub from '@/util/public-use'
setup () {
  const Pub = usePub()
  const getAssetsHomeFile = Pub.getAssetsHomeFile 
  return { getAssetsHomeFile }
}

不能包含文件路徑

<img :src="getAssetsHomeFile('home_icon.png')" />

補充:如果是背景圖片引入的方式(一定要使用相對路徑)

.imgText {
  background-image: url('../../assets/images/1462466500644.jpg');
}

生產(chǎn)環(huán)境會自動加上hash,并且路徑正確

img

以下錯誤用法,使用絕對路徑在開發(fā)環(huán)境能夠正常顯示,但將導致打包后的路徑不正確

.imgText {
  background-image: url('src/assets/images/1462466500644.jpg');
}

生產(chǎn)環(huán)境資源404:

img

到此這篇關(guān)于vue3+vite assets動態(tài)引入圖片的幾種方式,解決打包后圖片路徑錯誤不顯示的問題的文章就介紹到這了,更多相關(guān)vue3 vite assets動態(tài)引入圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文教你如何優(yōu)雅的控制全局loading的顯示

    一文教你如何優(yōu)雅的控制全局loading的顯示

    在我們的平時的工作中,在前后端交互的時候,為了提高頁面的觀賞性和用戶的體驗,我們會在頁面上添加loading來阻止用戶操作來等待接口的返回,這篇文章主要給大家介紹了關(guān)于如何優(yōu)雅的控制全局loading顯示的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • Vue.js實現(xiàn)九宮格圖片展示模塊

    Vue.js實現(xiàn)九宮格圖片展示模塊

    這篇文章主要為大家詳細介紹了Vue.js實現(xiàn)九宮格圖片展示模塊,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • vue中使用echarts制作圓環(huán)圖的實例代碼

    vue中使用echarts制作圓環(huán)圖的實例代碼

    這篇文章主要介紹了vue中使用echarts制作圓環(huán)圖的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • 在vue中獲取微信支付code及code被占用問題的解決方法

    在vue中獲取微信支付code及code被占用問題的解決方法

    這篇文章主要介紹了在vue中獲取微信支付code及code被占用問題的解決方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • 一文帶你上手vue3中的pinia

    一文帶你上手vue3中的pinia

    這篇文章主要以vue3+vite+ts舉例,為大家詳細介紹了vue3中pinia的安裝與使用,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-09-09
  • 解決項目vite1.0升級到2.0打包遇到Some chunks are larger問題

    解決項目vite1.0升級到2.0打包遇到Some chunks are larger問題

    本文主要介紹了解決項目vite1.0升級到2.0打包遇到Some chunks are larger問題,文中根據(jù)實例編碼詳細介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue編譯器解析compile源碼解析

    Vue編譯器解析compile源碼解析

    這篇文章主要為大家介紹了Vue編譯器解析compile源碼解析示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • vue中的.capture和.self區(qū)分及初步理解

    vue中的.capture和.self區(qū)分及初步理解

    這篇文章主要介紹了vue中的.capture和.self區(qū)分及初步理解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 手把手教你如何在vue項目中使用rem布局

    手把手教你如何在vue項目中使用rem布局

    公司內(nèi)部一直有大屏的需求,也一直再做,中途也踩了一些坑,但是沒有認真的來總結(jié)下,下面這篇文章主要給大家介紹了關(guān)于如何在vue項目中使用rem布局的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • vue報錯Cannot?read?properties?of?undefined?(...)類型的解決辦法

    vue報錯Cannot?read?properties?of?undefined?(...)類型的解決辦法

    這篇文章主要給大家介紹了關(guān)于vue報錯Cannot?read?properties?of?undefined?(...)類型的解決辦法,文中通過代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-04-04

最新評論