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
添加回答
举报