kossyです。Next.js使いになるべく、必死でインプット中です。
まずはconfigファイルからだろう(異論は認めます)ということで、next.config.jsを触っている時に copilot にサジェストされた、imagesの指定について備忘録として残してみます。
以下はChatGPT(GPT-4)の回答です。
imagesオブジェクトは、Next.js アプリケーションの next.config.js ファイル内で使用され、 画像の最適化設定をカスタマイズします。 具体的には、images オブジェクト内の domains 配列に指定されたドメインからの画像を Next.jsの画像最適化機能を使用して処理することを許可します。 この例では、avatars.githubusercontent.com というドメインからの画像が最適化の対象になります。 Next.js の画像最適化機能は、<Image /> コンポーネントを介して提供されます。 このコンポーネントは、画像を自動的に最適化し、 ロード時間を短縮し、パフォーマンスを向上させます。 しかし、デフォルトでは、Next.js は同一のオリジンから提供される画像のみを最適化します。 そのため、外部のドメイン(例えば、画像ホスティングサービスやCDN)から提供される画像を最適化するには、 そのドメインを next.config.js の images.domains 配列に明示的に追加する必要があります。 この設定を行うことで、指定されたドメインからの画像は、 Next.js によって自動的に最適化されるようになります。 画像は適切なサイズにリサイズされ、適切なフォーマット(例: WebP)に変換されることがあります。 これにより、ブラウザが必要とするサイズの画像をダウンロードし、 ページのロード時間を短縮し、ユーザー体験を向上させることができます。
最適化のための設定などができると言う理解で良さそうです。
ちなみに以下の記事を見ると、外部URLの画像を差し込むとエラーになるようです。
公式ドキュメントは以下で、domains以外にもremotePatternsの設定ができるようでした。 nextjs.org
module.exports = { images: { remotePatterns: [ { protocol: 'https', hostname: 's3.amazonaws.com', port: '', pathname: '/my-bucket/**', }, ], }, }
まずはChatGPT大先生の解説だけ頭に叩き込んでおけば良さそうです。
勉強になりました。