我目前正在开发一个组件,该组件可以使用v-tab、v-tab-items和v-tab-item呈现具有各自超文本标记语言内容的选项卡。在v-tab-item调用中,我有以下引用:
<v-card flat>
<v-card-text v-html="item.content"></v-card-text>
</v-card>它通过content属性呈现在items对象的相应项中定义的内容,如下所示:
data() { return tabNavToolbar: tabNavToolbarImg,
items: [
{
tab: 'About',
content: '<h2 class="mt-8">About</h2><p class="pt-5">Tabs are a form of secondary in-page navigation, helping to group different types of content in a limited space.</p><p class="pt-5">Use tabs to split long content into manageable chunks to avoid overwhelming the user. By default the first tab is selected.</p><v-card><v-col class="ml-0 mt-3 pt-8 px-10 pb-10 imgBackground d-flex justify-center"><img src="../../../assets/tabnavigation/tabnavigation-toolbar.png" width="100%" height="100%" alt="display of tab navigation toolbar"/></v-col></v-card>'
}
]
}但是,图像并未呈现,事实上,即使我在标准img标记中直接引用图像URL,它也会正确呈现。
我尝试了导入图像并绑定相应变量的想法,如下所示:
import tabNavToolbarImg from '../../../assets/tabnavigation/tabnavigation-toolbar.png'
data() { return tabNavToolbar: tabNavToolbarImg,
items: [
{
tab: 'About',
content: '<h2 class="mt-8">About</h2><p class="pt-5">Tabs are a form of secondary in-page navigation, helping to group different types of content in a limited space.</p><p class="pt-5">Use tabs to split long content into manageable chunks to avoid overwhelming the user. By default the first tab is selected.</p><v-card><v-col class="ml-0 mt-3 pt-8 px-10 pb-10 imgBackground d-flex justify-center"><img :src="tabNavToolbar" width="100%" height="100%" alt="display of tab navigation toolbar"/></v-col></v-card>'
}
]
}但这似乎也不起作用……有没有什么原因导致图像不能用这两种方法渲染出来,有没有办法解决这个问题?提前谢谢。
发布于 2020-12-24 09:01:48
您需要对字符串中的图像执行require操作,以便webpack知道将位置替换为图像的正确路径。
试试这个:<img src="' + require('../../../assets/tabnavigation/tabnavigation-toolbar.png') + '" width="100%" height="100%" alt="display of tab navigation toolbar"/> `
完整的content
content: '<h2 class="mt-8">About</h2><p class="pt-5">Tabs are a form of secondary in-page navigation, helping to group different types of content in a limited space.</p><p class="pt-5">Use tabs to split long content into manageable chunks to avoid overwhelming the user. By default the first tab is selected.</p><v-card><v-col class="ml-0 mt-3 pt-8 px-10 pb-10 imgBackground d-flex justify-center"><img src="' + require('../../../assets/tabnavigation/tabnavigation-toolbar.png') + '" width="100%" height="100%" alt="display of tab navigation toolbar"/></v-col></v-card>'https://stackoverflow.com/questions/65432700
复制相似问题