assetPrefix

注意: Vercelへのデプロイでは、Next.jsプロジェクトのグローバルCDNが自動的に設定されます。 Asset Prefixを手動で設定する必要はありません。

豆知識: Next.js 9.5以降では、/docsのようなサブパスでアプリケーションをホストするのに適したカスタマイズ可能なBase Pathがサポートされています。 このようなユースケースではカスタムのAsset Prefixを使用しないことを推奨します。

CDNを設定するには、asset prefixを設定し、CDNのオリジンをNext.jsがホストされているドメインに解決するように構成します。

next.config.jsを開き、assetPrefix設定を追加します:

next.config.js
const isProd = process.env.NODE_ENV === 'production'

module.exports = {
  // 本番環境ではCDNを、開発環境ではlocalhostを使用
  assetPrefix: isProd ? 'https://cdn.mydomain.com' : undefined,
}

Next.jsは、/_next/パス(.next/static/フォルダ)からロードするJavaScriptファイルとCSSファイルに対して自動的にasset prefixを使用します。例えば、上記の設定では、JSチャンクへの次のリクエスト:

/_next/static/chunks/4b9b41aaa062cbbfeff4add70f256968c51ece5d.4d708494b3aed70c04f0.js

は次のように変更されます:

https://cdn.mydomain.com/_next/static/chunks/4b9b41aaa062cbbfeff4add70f256968c51ece5d.4d708494b3aed70c04f0.js

ファイルを特定のCDNにアップロードするための正確な設定は、選択したCDNによって異なります。CDNでホストする必要があるのは.next/static/の内容のみで、これは上記のURLリクエストが示すように_next/static/としてアップロードする必要があります。.next/フォルダの残りの部分はアップロードしないでください。サーバーコードやその他の設定を公開すべきではありません。

assetPrefix_next/staticへのリクエストをカバーしますが、以下のパスには影響しません:

  • publicフォルダ内のファイル。これらのアセットをCDN経由で提供したい場合は、自分でプレフィックスを導入する必要があります