我正在用Vue构建一个需要动态背景的横幅,然而,它似乎不起作用。不知道我做错了什么。我已经尝试了一些其他的方法,它的作品,如果我做一个图像标签的东西,如
<img :src="require(`@/assets/images/${backgroundImage}`)" />
但显然这需要一个内联背景图像。
验证码:
组件
<template>
<div
class="w-full h-64 bg-auto bg-no-repeat bg-center lg:bg-cover relative"
:style="{ backgroundImage: url(require('@/assets/images/' + backgroundImage))}"
>
<div class="w-full h-full flex flex-col justify-center items-center text-white px-6">
<div class="hero-text rounded text-center py-8 px-12">
<p class="text-base lg:text-md uppercase font-medium">{{ smallLeadingText }}</p>
<h1 class="text-xl md:text-3xl lg:text-5xl uppercase font-bold">{{ mainText }}</h1>
<p class="text-base lg:text-md">{{ subText }}</p>
</div>
</div>
</div>
</template>
<script>
export default {
name: "PageHero",
props: {
backgroundImage: String,
smallLeadingText: {
type: String,
required: false
},
mainText: {
type: String,
required: true
},
subText: {
type: String,
required: false
}
}
};
</script>
观点
<PageHero
backgroundImage="mc-background.png "
smallLeadingText="Powerful, secure & affordable"
mainText="Minecraft hosting"
subText="Plans suitable for all budgets"
/>
2条答案
按热度按时间deyfvvtc1#
看起来您在
style
属性中遇到了一些字符串引号的语法错误。试试看创建一些计算属性来解决所有问题可能更容易
和
演示~ https://codesandbox.io/s/crimson-sky-ehn9r
arknldoa2#
虽然其他解决方案对我不起作用,但这确实:
当然,您需要height属性来显示图像。
此解决方案不包括“require”,这将为您节省“require”未定义的错误。
您可能还需要调整路径。
和
对我不起作用,但这个起了作用: