1 回答

TA貢獻1806條經驗 獲得超5個贊
從您對 的使用來看'@/assets',您似乎正在使用帶有解析別名的 webpack。該表達式require(background)不足以讓 webpack 確定它需要添加到你的包中的文件。
您可以通過指定要從中加載文件的目錄來幫助 Webpack。你所要做的就是從后臺變量中取出'@/assets/'并直接在require調用中使用它,這樣Webpack就可以看到它。
<template>
<div v-if="background" :style="{ backgroundImage: `url(${require('@/assets/' + background)})` }">
</div>
</template>
<script>
import axios from 'axios'
const lhost = require("@/config/global").host;
let championData;
export default {
name: 'IndividualChampion',
props: {
},
data: () => ({
champions: [],
verPersonagem: mdiMovieOpen,
background: ''
}),
computed: {
},
created: async function() {
try {
let champion = this.$route.fullPath.split('/')[2];
let response = await axios.get(lhost + "/champion/" + champion + '/full');
championData = response.data
console.log(championData)
this.background = championData['skins']['0']['loading'].replace('.png','.jpg')
}
catch (e) {
return e;
}
},
methods: {
}
}
</script>
不過,它將捆綁目錄中的所有可能文件。
您可以在此處閱讀更多相關信息:https ://webpack.js.org/api/module-methods/#dynamic-expressions-in-import
添加回答
舉報