Vue 绑定内联样式设置背景图片为什么会不显示?

1.绑定内联样式设置背景图片为什么会不显示?
同一个DIV,在CSS里通过ID设置背景图片就能显示

2.

  <div id="test" 
  :style="{ backgroundImage:'url('+'./assets/logo.png'+')', backgroundSize:'cover',
  backgroundPosition:'center center'}" ></div>
  
    #test {
    width: 700px;
    height: 500px;
    margin: 0 auto;
    border: 1px black solid;
    background: url('./assets/logo.png');
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    }

3.如图
图片描述
图片描述

而且我发现在CSS里设置的图片路径,在浏览器是渲染成:
background: url(/img/logo.82b9c7a5.png);
这样

阅读 7.8k
5 个回答

为什么呢?因为你的图片是要经过webpack打包的,你这样写是不行的,在html里面写是不会帮你处理的,要处理可以加require 这个img,写在样式里面有css-loader处理。

<div class="login-vue" :style="bg"></div>

this.bg.backgroundImage = 'url(' + require('../../assets/bg0' + new Date().getDay() + '.jpg') + ')'
<div id="test" 
  :style="{ backgroundImage:'url('+require('./assets/logo.png')+')',backgroundSize:'cover',
  backgroundPosition:'center center'}" ></div>

内联 url的字符串拼接已经错了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题