Fungsi paparan gambar dinamik Vue.js gagal
P粉216807924
P粉216807924 2023-08-20 11:03:39
0
1
571
<p>Saya seorang pemula dengan vue.js dan saya cuba memaparkan imej secara dinamik tetapi saya menghadapi masalah dengan paparan dinamik, jika saya menukarnya secara manual ia berfungsi dengan baik. Saya menemui banyak soalan yang serupa dengan beberapa perbezaan dan tiada satu pun daripada mereka membantu saya. </p> <p>Ini adalah struktur saya: </p> <pre class="brush:php;toolbar:false;">-src --aset ---piza ----piza-1.jpg ----pizza-2.jpg ---hamburger ----hamburger-1.jpg ----hamburger-2.jpg ---kentang goreng ----french-fries-1.jpg ----french-fries-2.jpg --komponen --DBjson ---main.json</pre> <p>Saya cuba mencipta gelung ini: </p> <pre class="brush:php;toolbar:false;">`<div class="holder" v-for="restoran di restoran"> <img :src="getImage(restaurant.name, restaurant.mainImage)"/> </div> eksport lalai { nama: "restoran", data() { kembali { restInfo: this.$attrs.restData, }; }, kaedah: { getImage(folderName, imageName) { biarkan imej = require.context("@/assets/"); return image("./" + folderName + "/" + imageName); }, }, };`</pre> <p>Fail JSON saya:</p> <pre class="brush:php;toolbar:false;">{ "id": 1, "nama": "piza", "price": "$10", "Imej utama": "pizza-1.jpg", "images": ["pizza-2.jpg", "pizza-1.jpg"], },</pre>
P粉216807924
P粉216807924

membalas semua(1)
P粉798343415

getImage harus meminta dan mengembalikan imej menggunakan laluan fail relatif penuhnya

Vue 2.x

getImage(folderName, imageName) {
  return require(`@/assets/${folderName}/${imageName}`)
}

Vue 3.x + Vite

Setahu saya, Vite tidak dapat mengendalikan alias '@' untuk tugas khusus ini, jadi pastikan anda menetapkan laluan anda mengikut keperluan

getImage(folderName, imageName) {
  return new URL(`../assets/${folderName}/${imageName}`, import.meta.url).href;
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan