assetPrefix
注意: Vercelへのデプロイでは、Next.jsプロジェクトのグローバルCDNが自動的に設定されます。 Asset Prefixを手動で設定する必要はありません。
豆知識: Next.js 9.5以降では、
/docs
のようなサブパスでアプリケーションをホストするのに適したカスタマイズ可能なBase Pathがサポートされています。 この用途ではカスタムのAsset Prefixを使用しないことをお勧めします。
CDNの設定
CDNを設定するには、asset prefixを設定し、CDNのオリジンをNext.jsがホストされているドメインに解決するように構成します。
next.config.mjs
を開き、フェーズに基づいてassetPrefix
設定を追加します:
// @ts-check
import { PHASE_DEVELOPMENT_SERVER } from 'next/constants'
export default (phase) => {
const isDev = phase === PHASE_DEVELOPMENT_SERVER
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
assetPrefix: isDev ? undefined : 'https://cdn.mydomain.com',
}
return nextConfig
}
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経由で提供したい場合は、自分でプレフィックスを導入する必要があります