Skip to content
On this page

取得資料夾內文件

在建構網頁時,有時候會需要將整個資料夾內的圖檔全部放到頁面上,我過很多有關於vue、vite的網路發問,大多會出現像這樣的解答 :

js
mounted() {
    this.importAll(require.context('../assets/images/path/', true, /\.png$/));
},

由於 require.context 在 vite 當中無法辨識,於是官方提供了一個 glob import 的方法 :

js
const images=import.meta.glob('/assets/images/path/*',{import:'default',eager:true})

執行後會出現像這樣情形的陣列組合 [ {"/path/*":"/path/*"} , {"/path1/*":"/path1/*"}]...之類的,它把資料夾內所有指定的檔案,全都擺上,而且路徑與值全都一樣,有點難辨識。

TIP

我試過將import:'default'、eager:true拿掉,卻變成無法取得有效路徑。


參考

How to get all the image files in a directory using vue.js / nuxt.jsvite Glob Import