Capítulo 391 de 456
Configura um CDN para servir os arquivos estáticos gerados pelo Next.js (/_next/static), prefixando as URLs de JS/CSS.
/_next/ para assets JS/CSSbasePath é para hospedar a app inteira em sub-path; assetPrefix é especificamente para CDN de assetsimport { 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
}
assetPrefix só em produção, mantendo dev sem CDN..next/ inteiro pro CDN: só .next/static/ deve ser hospedado, como _next/static/; expor o resto vaza código de servidor e configuraçãoassetPrefix para hospedar em sub-path: usar basePath para esse caso, não é o propósito do assetPrefixassetPrefix cubra tudo: não afeta arquivos em public/, nem requests /_next/data/ de getServerSideProps/getStaticProps (sempre vão pro domínio principal)assetPrefix manual é desnecessário lá.next/static/ precisa ir pro CDN, renomeado como _next/static//_next/data/) sempre batem no domínio principal, mesmo com assetPrefix configurado