Saltar al contenido principal
El HTML y el código del servidor permanecen en Next.js. Solo el contenido de .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
Carga y ejecuta la misma compilación de producción. Después de cargar los archivos, inicia Next.js con 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

Configura 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:
Para CSS use 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

El 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.