91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • vue3+vite?assets動態引入圖片及解決打包后圖片路徑錯誤不顯示的方法

vue3+vite?assets動態引入圖片及解決打包后圖片路徑錯誤不顯示的方法

發布時間:2023-03-20 10:28:15 來源:億速云 閱讀:463 作者:iii 欄目:開發技術

這篇“vue3+vite assets動態引入圖片及解決打包后圖片路徑錯誤不顯示的方法”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“vue3+vite assets動態引入圖片及解決打包后圖片路徑錯誤不顯示的方法”文章吧。

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

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

vue3+vite?assets動態引入圖片及解決打包后圖片路徑錯誤不顯示的方法

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

這里我們先假設:
靜態文件目錄:src/assets/images/
我們的目標靜態文件在 src/assets/images/home/home_icon.png

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

嘗試過require動態引入, 發現報錯:require is not defind,這是因為 require 是屬于 Webpack 的方法

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

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

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

推薦,這種方式傳入的變量可以動態傳入文件路徑!!

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

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

// 獲取assets靜態資源
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,兩者的區別是前者懶加載資源,后者直接引入。

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

// 獲取assets靜態資源
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');
}

生產環境會自動加上hash,并且路徑正確

vue3+vite?assets動態引入圖片及解決打包后圖片路徑錯誤不顯示的方法

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

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

生產環境資源404:

vue3+vite?assets動態引入圖片及解決打包后圖片路徑錯誤不顯示的方法

以上就是關于“vue3+vite assets動態引入圖片及解決打包后圖片路徑錯誤不顯示的方法”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

寿宁县| 万年县| 石首市| 固镇县| 绥阳县| 平山县| 东海县| 铜陵市| 四会市| 山阴县| 仪陇县| 黄山市| 赤水市| 静安区| 聊城市| 大荔县| 澄城县| 定结县| 陇南市| 甘泉县| 四川省| 平潭县| 缙云县| 杭锦后旗| 大安市| 嘉峪关市| 彭州市| 炉霍县| 高淳县| 石河子市| 香港| 绥阳县| 平邑县| 永清县| 江陵县| 盐津县| 荆州市| 苏尼特左旗| 寻乌县| 乌苏市| 车险|