Я учусь использовать VueJS, и мне удалось сделать простую страницу, показывающую меню ресторана (в одном файле).
Теперь я использую vue -cli и изменил то, что я сделал: все работает, кроме изображений.
Моя структура выглядит следующим образом:
/node_modules
/public
/src
/assets
/picture.jpg
/[...]
/components
/MenuItem.vue
App.vue
main.ts
В src / App. vue:
<template>
[...]
<ul>
<MenuItem
v-for="plat in plats"
:name="plat.name"
:price="plat.price"
:url="plat.url"
:role="role"
:plat="plat"
:supprimer="supprimer"
:key="plat.name"
/>
</ul>
[...]
</template>
<script>
import MenuItem from './components/MenuItem'
export default {
name: 'App',
components: {
MenuItem
},
data() {
return{
plats: [
{name: "Steak de boeuf", price: 5.99, url: "/assets/steak.jpg"},
{name: "Coq au vin", price: 8.99, url: "/assets/coq.jpg"},
{name: "Gencives de porc", price: 12.99, url: "/assets/porc.jpg"},
{name: "Entrée", price: 4.99, url: "/assets/entrée.jpg"},
{name: "Plat du jour", price: 14.99, url: "/assets/plat.jpg"}],
[...]
</script>
В src / components / MenuItem. vue:
<template>
<li class="plat">
<img :src="url"/><p> {{ name }} - {{ price }}€</p>
<p v-if="role=='admin'" @click="supprimer(plat)"> Supprimer le plat </p>
</li>
</template>
<script>
export default {
name: 'MenuItem',
props: ['name','price','url','role','plat','supprimer']
}
</script>
Я думал, что это может быть из-за пути изображений, но я пробовал абсолютные / родственные пути, и ничего не работало. Я попытался изменить путь на "./assets / ...", "./src/assets / ...", et c, потому что я не уверен, из какого места vuejs ищет pictures.
Когда я запускаю код, все отображается правильно, за исключением того, что изображения заменяются символом «not found image»:
result