.next/static, disponible como _next/static, se carga en la CDN. Los archivos de public requieren URL independientes. El comportamiento de assetPrefix se describe en la [documentación de Next.js] (https://nextjs.org/docs/app/api-reference/config/next-config-js/assetPrefix).
1. Seleccione la dirección de entrega
CDN general:https://cdn.erlcrussia.com/YOUR_TEAM_SLUG/releases/RELEASE_ID.
Dominio personalizado: https://files.example.com/releases/RELEASE_ID después del registro, verificación de DNS/TLS.
En la API, el campo domain es el slug del equipo o un nombre de dominio verificado, sin esquema y sin prefijo de versión.
2. Configurar una compilación de producción
next.config.js
npm run start en tu entorno de alojamiento. Configura el dominio personalizado en CDN_ASSET_PREFIX antes de compilar la versión.
3. Vincular una clave personalizada
API_BASE=https://api.erlcrussia.com. Las rutas CDN de usuario requieren erlcrussia-api-key; no utilizan la clave maestra. No incluyas la clave en NEXT_PUBLIC_*, HTML ni JavaScript de la aplicación.
4. Cargue archivos antes del lanzamiento
Para cada archivo.next/static/RELATIVE_PATH, envíe una solicitud con la ruta releases/RELEASE_ID/_next/static/RELATIVE_PATH:
text/css, para fuentes use MIME del formato apropiado. No configure el Content-Type: multipart/form-data genérico manualmente: el límite lo agrega el cliente. compress=false guarda bytes y ensamblaje SHA-256. Para su propio dominio, reemplace domain con files.example.com.
HTTP 200 devuelve { "success": true, "asset": { ... } }. Una ruta explícita ocupada devuelve 409; No consideres esto como una reescritura exitosa. Compare el SHA-256 de un activo existente o utilice un nuevo RELEASE_ID. En 429, espere Retry-After/Retry-After y vuelva a intentar solo la solicitud rechazada. Cargue secuencialmente, teniendo en cuenta el límite general, en lugar de cientos de solicitudes paralelas.
No descargues el .next completo: ahí está el código del servidor y la configuración. Publicar mapas fuente .map solo si existe una necesidad consciente. Conserve las versiones antiguas siempre que las pestañas abiertas las utilicen.
5. Imágenes y otros archivos públicos
img normal solicita la CDN directamente. Cuando se utiliza la optimización next/image, el navegador puede acceder al /_next/image local; Este es un mecanismo separado. assetPrefix no transfiere HTML, API, Server Actions y datos dinámicos de Next.js a CDN.
6. Comprueba el resultado
En Red, verifique JS/CSS/dominio de fuente, MIME, CORS y HTTP 200. Compare los bytes con los archivos fuente, luego HEAD, Rango (206) y solicitud condicional por ETag (304). Haga clic en el botón interactivo: la presencia de HTML no prueba la ejecución de JavaScript. La CDN sirve archivos cargados previamente.originUrl indica una redirección para la raíz del dominio o un objeto ausente, no un origen de descarga automática. Carga los archivos mediante la API antes de publicar la versión.
Las rutas que comienzan con _next/static/ se vuelven inmutables en la CDN. Si _next está precedido por un prefijo de versión, la implementación actual utiliza un control de caché normal; verifique el título real. Restablecer la CDN no borra el caché del navegador y no confirma que Cloudflare lo haya borrado.