Vue 2图像无法在某些浏览器中呈现

时间:2017-08-04 15:45:06

标签: javascript php laravel vue.js vuejs2

我正在使用Laravel 5.4和Vue 2.4.2。由于axios返回的数组,我正在使用v-for进行渲染:

<div class="card" style="width: 20rem; margin-left:1rem;" v-for="ad in ads" v-cloak>
      <img v-if="ad.image1" class="card-img-top" :src="'/public/ads/' + ad.image1" alt="Image">
      <img v-else class="card-img-top" src="/public/logo.png" alt="No Image">
      <div class="card-block">
        <h4 class="card-title">@{{ ad.title }}</h4>
        <p class="card-text">
            @{{ ad.description }}<br><hr>
            <strong>$@{{ ad.cost }}</strong>
        </p>
        <a href="#" class="btn btn-primary">Contact us</a>
    </div>
</div>

我已尝试使用:srcv-attr:srcv-bind:src

信息正在成功显示,但唯一不起作用的是:

<img v-if="ad.image1" class="card-img-top" :src="'/public/ads/' + ad.image1" alt="Image">

这也很有效:

<img v-else class="card-img-top" src="/public/logo.png" alt="No Image">

当我看到Firefox中的开发人员工具中加载的信息时,我得到了&#34;没有图像&#34;加载很好,但是当我将鼠标悬停在网址时会显示一条消息:&#34; 无法加载&#34;:

  

编辑1:   Error

奇怪的是,如果在开发者工具中我从src属性复制URL并将其粘贴到浏览器中,我可以正确地看到图像。

  

编辑2:这不是唯一奇怪的事情,它也适用于Microsoft Edge和Google Chrome移动设备,但不适用于Firefox或Google Chrome。

根据开发人员工具,这是Vue 2生成的元素:

<img src="/public/ads/hcpOW7aPhJFXWR8MP0poRfYYvmcRKjq2M6irUsD7.jpeg" alt="Imagen" class="card-img-top vjnhddxuzwlropukknbb">

这是正在显示的生成元素:

<img src="/public/logo.png" alt="No Imagen" class="card-img-top">

1 个答案:

答案 0 :(得分:0)

啊,我测试这个例子,但它确实有效。

data(){
	return {
		isShowImage : true,
		imgArr : ['banner.jpg', 'logo.png', 'about.jpg']
	}
}
<div v-for="img of imgArr">
	<img v-if="isShowImage" src="/data/images/banner.jpg"  style="width:100px;height:30px;"/>
	<img v-else src="/data/images/logo.png" style="width:100px;height:30px;" />
</div>
<button @click="isShowImage = !isShowImage" type="button" name="button">show</button>

你确定你的影像路径是对的吗?