1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Next.js】publicフォルダの正しい指定方法

Last updated at Posted at 2025-02-02

はじめに

Next.jsで画像の表示方法について詰まった箇所があったので、整理して記事にしました。

この記事は個人的なアウトプットを目的として作成したものです。そのため、誤った情報や不足している内容が含まれている可能性があります。もし間違いや気になる点がございましたら、ぜひご指摘いただけますと幸いです

Next.jsでの画像の表示の仕方

imgタグを使う場合

まず、publicフォルダに画像を配置する場合、imgタグでは以下のようにパスを指定します。

blog-app
└── public
    └── img
        └── xxxx.png

この場合、画像を表示するには以下のように/img/xxxx.pngと記述します。

 export default function Page() {
  return <img src="/img/xxxx.png" alt="img" />;
}

publicフォルダはURLのルート(/)として扱われるため、publicを含める必要はありません

 export default function Page() {
  return <img src="./public/img/xxxx.png" alt="img" />;
}

このように指定するとpublicをディレクトリとして解釈しようとするため、画像が表示されません

next/imageを使う場合

next/imageを使用する場合も、imgタグと同様にpublicフォルダ内のパスを指定できます。

import Image from 'next/image'

 export default function Page() {
  return  <Image src="/img/xxxx.png" alt="img" width="64" height="64" />;
}

next/imageはパフォーマンスを向上させるため、基本的にはこちらの使用が推奨されています。

終わりに

Next.jsの画像管理はpublicフォルダの扱い方がポイントになることがわかりました。またpublicディレクトリを使わず、appディレクトリ内に画像を配置する方法もあるのでそちらについても今後学習していきたいと思います。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?