带有背景图像的 Vue3 样式指令产生 404 错误

Posted

技术标签:

【中文标题】带有背景图像的 Vue3 样式指令产生 404 错误【英文标题】:Vue3 style directive with background-image produces 404 Error 【发布时间】:2021-12-14 08:23:32 【问题描述】:

我正在分配从 databaseaxios.get 获取的反应性 image link,如下所示:

<div class="main-image" :style="'background-image': 'url(' + state.articles.image[0] + ')'">

一切正常,div 的背景图像已正确更改。唯一的问题是我的控制台抛出:

GET http://localhost:3000/undefined 404 (Not Found)

显然这表明url 没有指向任何地方,但是当background-image 正确显示时,这怎么可能呢?在我的CSS 中没有设置background-image 属性,只有background: no-repeat center 但即使我删除了这些错误仍然存​​在。任何想法如何摆脱404

在将console.log(state.articles.image[0]) 发送到template 之前运行会生成正确的图像链接:

storage/brrAlEXfmEvoqjXiRhgalgzT9f2MfbX07Q4wDL0i.jpg

即使我在模板中输出链接(例如在 h-tag 中),它也会显示正确的链接,那么有什么问题?

【问题讨论】:

【参考方案1】:

模板将在state.articles.image[0] 已知之前呈现。 div 标签被渲染,浏览器将尝试获取 undefined 背景图片 url。解决此问题的一种方法是仅在状态准备好时才呈现 &lt;div&gt;

<div v-if="state.articles && state.articles.image[0]" class="main-image" :style="'background-image': 'url(' + state.articles.image[0] + ')'">

【讨论】:

以上是关于带有背景图像的 Vue3 样式指令产生 404 错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥带有边框和背景图像样式的 QWidget 的行为与 QLabel、QDialog、...不同?

css 样式中的背景图像在带有尾风的 laravel 中不起作用

背景图像 url() 不起作用,但带有 src 的图像标签可以

是否可以有一个带有顶部文本的背景图像的按钮?

为 UITableViewCells 使用背景图像(分组样式) - 不圆角

使用背景图像 css 样式预览多个图像 Vue JS