assetPrefix
注意: Vercelへデプロイすると、Next.jsプロジェクトのためのグローバルCDNが自動的に構成されます。 手動でAsset Prefixを設定する必要はありません。
Good to know: Next.js 9.5以降では、カスタマイズ可能なBase Pathのサポートが追加され、この機能は
/docs
のようなサブパスにアプリケーションをホスティングするのに適しています。 このユースケースのためにカスタムAsset Prefixを使うことはお勧めしません。
CDNを設定する
CDNを設定するには、アセットプレフィックスを設定し、Next.jsがホストされているドメインを解決するようにCDNのオリジンを構成します。
next.config.mjs
を開いて、フェーズに基づいたassetPrefix
設定を追加します:
next.config.mjs
// @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ファイルを読み込む際に、自動的にアセットプレフィックスを使用します。例えば、上記の設定を使用すると、以下の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経由で提供したい場合は、独自にプレフィックスを導入する必要があります