@Nikita1244
Anonymous

Почему не находит изображение если указать переменную?

Есть код:
<TheatreBlockDiv v-for="movie in movies" :key='movie.id'>
            <router-link :to="movie.link">
            <TheatreBlockImg  :src="require(`${movie.image}`)" alt="Фильм"/>
            <h3 class="theatre-block__div-title">{{movie.title}}</h3>
            </router-link>
        </TheatreBlockDiv>


Вот так выглядит мой массив фильмов:
movies: [
       {
            title: "Фильм",
            image: "../assets/photo.jpg",
            link: "/infomovie",
            id: 0,
       },
       {
            title: "Фильм",
            image: "../assets/photo.jpg",
            link: "/infomovie2",
            id: 1,
        },
       {
            title: "Фильм",
            image: "../assets/photo.jpg",
            link: "#",
            id: 2,
      },
      {
         title: "Фильм",
         image: "../assets/photo.jpg",
         link: "#",
         id: 3,
     },
     {
         title: "Фильм",
         image: "../assets/photo.jpg",
         link: "#",
         id: 4,
     },
    {
        title: "Фильм",
        image: "../assets/photo.jpg",
        link: "#",
        id: 5,
    },
    {
        title: "Фильм",
        image: "../assets/photo.jpg",
        link: "#",
        id: 6,
    },
]


Вот так выглядит мой компонент TheatreBlockImg:
<template>
    <img class="theatre-block__img">
</template>

<script>
export default {
    name: "TheatreBlockImg",
}
</script>

<style scoped>
.theatre-block__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
</style>


Выходит ошибка:
Uncaught (in promise) Error: Cannot find module '@/assets/photo.jpg'


Но если захардкодить:
<TheatreBlockImg  :src="require(`@/assets/photo.jpg`)" alt="Фильм"/>

Тогда все работает.

Как победить эту проблему? В Google ничего толкового не нашёл.
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
nedosekinstanislav
@nedosekinstanislav
Штирлиц как никогда был близок к провалу
А так?
require(`@/${movie.image}`)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы