vue3+vite 動態(tài)引用靜態(tài)資源及動態(tài)引入assets文件夾圖片的多種方式
這里我們先假設:
靜態(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文件中導入
<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');
}到此這篇關于vue3+vite 動態(tài)引用靜態(tài)資源,動態(tài)引入assets文件夾圖片的幾種方式的文章就介紹到這了,更多相關vue3 vite 動態(tài)引用靜態(tài)資源內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue.config.js文件devServer字段的常用選項詳解
在?Vue?CLI?生成的?vue.config.js?文件中,devServer?字段用于配置開發(fā)服務器的選項,本文給大家介紹vue.config.js文件devServer字段的常用選項,感興趣的朋友一起看看吧2023-11-11
vxe-table表格組件,編輯單元格詳解(el-table組件同樣適用)
這篇文章主要介紹了vxe-table表格組件,編輯單元格詳解(el-table組件同樣適用),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04
vue2.0.js的多級聯(lián)動選擇器實現(xiàn)方法
下面小編就為大家分享一篇vue2.0.js的多級聯(lián)動選擇器實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02

