【发布时间】:2019-09-24 01:21:12
【问题描述】:
我已经使用 bootstrap-vue 设置了一个轮播。轮播项目是使用 for 循环和数组动态创建的。该数组包含三个具有以下键的对象:id、标题、文本和图像路径。到目前为止,我能够显示标题和文本但不能显示图像。我检查了控制台,没有错误。因此,我很困惑。下面是我的代码和问题截图
更新:我已经尝试解决这个问题 2 天了,非常需要帮助!
这是我的项目结构
这是我的代码
<template>
<div>
<b-carousel
id="carousel-1"
v-model="slide"
:interval="10000"
controls
indicators
background="#ababab"
style="text-shadow: 1px 1px 2px #333;"
@sliding-start="onSlideStart"
@sliding-end="onSlideEnd"
>
<b-carousel-slide
v-for="item in carouselItems"
:key="item.id"
:caption="item.caption"
:text="item.text"
:style="{ 'background-image': 'url(' + item.image + ')' }"
></b-carousel-slide>
</b-carousel>
</div>
</template>
<script>
export default {
data() {
return {
carouselItems: [
{
id: 1,
caption: "Memories",
image: "@/assets/images/Homepage-min.jpg",
text: "Memories(1)"
},
{
id: 2,
caption: "Memories",
image: "@/assets/images/Homepage-min.jpg",
text: "Memories(2)"
},
{
id: 3,
caption: "Memories",
image: "@/assets/images/Homepage-min.jpg",
text: "Memories(3)"
}
],
slide: 0,
sliding: null
};
},
methods: {
onSlideStart(slide) {
this.sliding = true;
},
onSlideEnd(slide) {
this.sliding = false;
}
}
};
</script>
更新我去看看网络标签,看看我是否指定了错误的图像路径。但是,图像路径是正确的,因为状态码是 304。这似乎是什么问题?有人可以帮忙吗?
更新:我已经删除了样式并用以下代码替换了它
:img-src="item.image"
保存更改并刷新后,我可以看到一个图标,指示浏览器无法加载图像。
更新我已成功将图像渲染到轮播幻灯片。显然,如果图像路径是相对的,则需要“require”。我已将这部分代码更新为以下内容
data() {
return {
carouselItems: [
{
id: 1,
caption: "Memories",
image: require("@/assets/images/Homepage-min.jpg"),
text: "Memories(1)"
},
{
id: 2,
caption: "Memories",
image: require("@/assets/images/Homepage-min.jpg"),
text: "Memories(2)"
},
{
id: 3,
caption: "Memories",
image: require("@/assets/images/Homepage-min.jpg"),
text: "Memories(3)"
}
],
slide: 0,
sliding: null
};
},
更新 但是,现在我面临另一个问题,在移动模式下,图像不适合屏幕的整个高度。我希望它反应灵敏。这是我的问题的屏幕截图
更新 2019 年 7 月 5 日我仍在尝试解决此问题,谁能帮我解决 CSS 问题?
【问题讨论】:
-
您是否在 webpack 配置或您正在使用的任何构建过程中为您的图像路径正确设置了
@别名?您可以在开发者工具的控制台或网络选项卡中看到什么?客户端是在正确的位置、错误的 URL 下请求图像,还是根本不请求图像? -
嗨,@Connum 感谢您的回复!由于我是编程新手,我不确定您在说什么。 “您是否为图像路径正确设置了@别名”是什么意思。为了提供更多背景信息,我使用 Vue CLI 创建了这个 Vue 项目。
-
@Connum 此外,我通过引用此 stackoverflow 帖子 stackoverflow.com/questions/47313165/… 来学习引用我的资产文件夹
-
当您在浏览器中按 F12 打开开发工具时,请查看控制台选项卡和网络选项卡。您应该会看到浏览器尝试在哪里找到图像并失败并出现 404 错误,因为它没有找到它们。从那里开始,您应该能够通过在图像路径中添加“../”来修复路径。
-
嗨@Connum,在网络选项卡的Homepage.min.jpg下,浏览器返回304状态码(未修改)
标签: javascript twitter-bootstrap vue.js bootstrap-4 bootstrap-vue