vue3+vite 動態(tài)引用靜態(tài)資源及動態(tài)引入assets文件夾圖片的多種方式
這里我們先假設(shè):
靜態(tài)文件目錄:src/assets/images/
我們的目標靜態(tài)文件在:src/assets/images/home/home_bg.png
<img :src="require('@/assets/images/home/home_bg.png')" />
通過require動態(tài)引入, 發(fā)現(xiàn)報錯:
require is not defind
,這是因為 require 是屬于 Webpack 的方法
第一種方式(適用于單個資源文件)
import homeBg from 'src/assets/images/home/home_bg.png' <img :src="homeBg" />
第二種方式(適用于多個資源文件,動態(tài)傳入文件路徑)
new URL() + import.meta.url
在src目錄下創(chuàng)建一個util文件夾,文件夾里創(chuàng)建一個utils.ts文件
// 獲取assets靜態(tài)資源 const getAssetsFile = (url: string) => { return new URL(`../assets/images/${url}`, import.meta.url).href; }; export default { getAssetsFile, };
在vue文件中導(dǎo)入
<script setup lang="ts"> import util from 'src/util/utils' </script>
使用方式
<template> <img class="bg-img" :src="util.getAssetsFile('bg.png')" alt=""> </template>
第三種方式(適用于多個資源文件,這種方式引入的文件必須指定到具體文件夾路徑,傳入的變量中只能為文件名,不能包含文件路徑)
例如在assets/images文件下還有一個home文件夾
// 獲取assets靜態(tài)資源 const getAssetsFile = (url: string) => { const path = `../assets/images/home/${url}`; const modules = import.meta.glob("../assets/images/home/*"); return modules[path].default; }; export default { getAssetsFile, };
<script setup lang="ts"> import util from 'src/util/utils' </script>
<template> <img class="bg-img" :src="util.getAssetsFile('bg.png')" alt=""> </template>
如果是背景圖片引入的方式(一定要使用相對路徑)
.bg-box{ background-image: url('../../assets/images/bg.png'); }
到此這篇關(guān)于vue3+vite 動態(tài)引用靜態(tài)資源,動態(tài)引入assets文件夾圖片的幾種方式的文章就介紹到這了,更多相關(guān)vue3 vite 動態(tài)引用靜態(tài)資源內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue-cli腳手架打包靜態(tài)資源請求出錯的原因與解決
這篇文章主要給大家介紹了關(guān)于vue-cli腳手架打包靜態(tài)資源請求出錯的原因與解決方法,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用vue-cli具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06vue實現(xiàn)echart餅圖legend顯示百分比的方法
本文主要介紹了vue實現(xiàn)echart餅圖legend顯示百分比的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09