🍣

Nuxt3で画像がうまく読み込めない

2022/12/15に公開

問題

画像のファイルパスは間違っていないのにうまく表示されない。

解決策

Nuxt3からViteと呼ばれるビルドツールがデフォルトになった。
Vite公式によると、以下のようにURLクラスからインスタンスを生成して、hrefのプロパティを渡す必要がある。

const imgUrl = new URL('./img.png', import.meta.url).href

実装例

asset/image ディレクトリに複数の画像を置いた場合、参照する実装例。

[id].vue
<template>
  <div>
    <img :src="imgUrl"/>
  </div>
</template>

<script setup lang="ts">
const route = useRoute();
const id = route.params.id
const imgUrl = new URL(`../assets/image/${id}.png`, import.meta.url).href
</script>

Discussion