Javascript Vue找不到vuetify v-img元素的动态源
我需要使用vuetify动态加载图像(从文件系统而不是url)。但是,当我在v-img元素中绑定路径变量时,vue找不到它。当我使用“required”方法静态地放置它时,它是ok的 如何使用vuetify选择动态路径?这是文件加载器的问题吗 我希望在运行时动态地选择映像。例如,如果我有“下一步”按钮,我想加载下一个图像。下面是Vue.js中的代码Javascript Vue找不到vuetify v-img元素的动态源,javascript,vue.js,vuetify.js,Javascript,Vue.js,Vuetify.js,我需要使用vuetify动态加载图像(从文件系统而不是url)。但是,当我在v-img元素中绑定路径变量时,vue找不到它。当我使用“required”方法静态地放置它时,它是ok的 如何使用vuetify选择动态路径?这是文件加载器的问题吗 我希望在运行时动态地选择映像。例如,如果我有“下一步”按钮,我想加载下一个图像。下面是Vue.js中的代码 <html> <v-img v-bind:src="require(myPath)" asp
<html>
<v-img
v-bind:src="require(myPath)"
aspect-ratio="1.5"
max-height="500"
contain
/>
</html>
<script>
data: () => ({
mycount: 1,
myPath: "../myimages/2.png"
})
</script>
数据:()=>({
我的账号:1,
myPath:“../myimages/2.png”
})
[Vue warn]:渲染中出错:“错误:在-->的src/App.Vue Vue.runtime.esm.js:619中找不到模块“../myiamges/2.png”
错误:“找不到模块“../imyimages/2.png”
WebPackageMPtyContext组件同步:2
渲染游戏表。vue:30
VueJS 21
运行es6.promise.js:75
通知es6.promise.js:92
flush_microtask.js:18
vue.runtime.esm.js:1888
尝试使用计算属性,例如:
<html>
<v-img
v-bind:src="require(imageSrc)"
aspect-ratio="1.5"
max-height="500"
contain
/>
</html>
<script>
data: () => ({
mycount: 1,
myPath: "../myimages/2.png"
}),
computed: {
imageSrc() {
return this.myPath;
}
}
</script>
数据:()=>({
我的账号:1,
myPath:“../myimages/2.png”
}),
计算:{
imageSrc(){
返回this.myPath;
}
}
这将使imageSrc成为一个动态变量,但您说过要单击“下一步”按钮,此单击需要更改“myPath”值,然后“imageSrc”将更改,v-img将获得此新值 经过长时间的研究和尝试,我找到了自己问题的答案 这里的问题在于“require”方法。在编译期间,当我使用动态路径时,它需要知道图像所在的文件夹。看见因此,动态地给出包含文件名的路径不会使“require”方法仅识别文件夹。那是我的解释 所以我修改了这样的代码,它对我起了作用:
<html>
<v-img
v-bind:src="require('../myimages/' + myFilename)"
aspect-ratio="1.5"
max-height="500"
contain
/>
</html>
<script>
data: () => ({
mycount: 1,
myFilename: "2.png"
})
</script>
数据:()=>({
我的账号:1,
myFilename:“2.png”
})
在这种情况下,我可以在运行时更改myFilename,它也可以工作。您也可以这样做:
<v-img
:src="`${image-variable}`">
</v-img>
这在Vuetify 1.5中起作用在实现computed属性后,问题仍然存在。发生了相同的错误。Vue.js以某种方式正确解释了错误所述的动态路径,但仍然找不到该文件。另一方面,静态路径仍在工作。当我将路径更改为url路径并删除require方法时,它就工作了。例如:v-bind:src=myPath myPath:“”,