Компонент Vue.js img src из опоры?

Я пытаюсь сделать следующее, но изображение выводится некорректно. Когда я показываю изображение в display.vue, если я печатаю {{someText}}, я получаю правильный путь к файлу (../assets/city.png).

display.vue

<template>
    <example :someText = "'../assets/' + stamp + '.png'"></example>
</template>

<script>
import example from './example.vue'

export default {
    name: "",
    data() {
        return {
            stamp: "city"
        }
    }
    components: [
        example
    ]
};
</script>

example.vue

<template>
    <img :src = "someText" />
</template>

<script>
    export default {
      name: "example",
      props: ["someText"]
    };
</script>

Что вы имеете в виду под «некорректно выводится»? Изображение вообще отображается?

Stephen Thomas 31.08.2018 23:16

@Stephen Thomas Показывает символ изображения по умолчанию.

J. Doe 31.08.2018 23:25

Вы проверили, существует ли файл в указанном месте? помните, что относительные URL-адреса (например, тот, который вы используете) относятся к текущему местоположению URL-адреса браузера

Chinonso Chukwuogor 01.09.2018 01:15
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
4 343
2

Ответы 2

Вам необходимо изменить формат корпуса реквизита:

HTML attribute names are case-insensitive, so browsers will interpret any uppercase characters as lowercase. That means when you’re using in-DOM templates, camelCased prop names need to use their kebab-cased (hyphen-delimited) equivalents (source)

Это должно работать так:

<template>
  <example :some-text = "'../assets/' + stamp + '.png'"></example>
</template>

OP не использует шаблоны в DOM, поэтому проблема не в camelCase.

yuriy636 01.09.2018 11:22

Такое случилось и со мной. В вашем example.vue попробуйте это

<template>
    <img src = "../assets/city.png" />
</template>

Если это не дает вам правильный результат. Затем попробуйте с полным путем

<template>
    <img src = "src/assets/city.png" />
</template>

В моем случае изображение не читается с ../assets/city.png, но читается с src/assets/city.png.

Может я не знаю. То, что я сказал, сработало для меня. знак равно

Pathum Kalhan 01.09.2018 05:28

Хорошо)). В моем проекте рабочий код <img src = "@ / assets / logo.png" />

Николай 01.09.2018 05:50

Я думаю, что разные версии веб-пакетов должны иметь разный синтаксис. В любом случае мы оба можем сказать, что изменение пути, как вы упомянули, или как я уже упоминал, должно решить этот вопрос. знак равно

Pathum Kalhan 01.09.2018 06:24

Другие вопросы по теме