I’ve tried everything I found on Google, none of they worked for me.
Basically, what I’m trying to do is passing an object through a v-for to another component like that:
<Representante v-for="(representante, i) in representantes" :key="i" :rep="representante" />
This representante
variable is the object i’m passing. It has a imagem
property that contains the name of the image I need.
IMPORTANT: the images are in the public folder because I thought it would work, but it hasn’t.
Inside the component script, here’s what I have:
<script> export default { props: ['rep'], data() { return { foto: null } }, mounted() { this.foto = '/' + this.rep.imagem; } } </script>
That basically initializes the foto
property in data()
, so I can use in the <img>
tag.
<img :src="foto" :alt="rep.altImagem">
But it simply doesn’t work, neither with the image on the public
folder nor the src/assets/
folder. Only the alt
is displayed. I’ve tried using require()
too, but it doesn’t work like that, or I didn’t know how to use.
I can’t find any information on the internet of why Vue isn’t able to find my images.
By the way, thats the error I get:
GET http://localhost:8080/nameOfImage.jpeg [HTTP/1.1 404 Not Found 3ms]
Thanks any help.
Advertisement
Answer
My solution was to add the images on a remote repository so I could get the URLs and use them, that worked. But I still think my problem is very weird behavior of Vue.