Cómo previsualizar contenido con el Modo Borrador en Next.js
El Modo Borrador te permite previsualizar contenido en borrador desde tu CMS headless en tu aplicación Next.js. Esto es útil para páginas estáticas generadas en tiempo de compilación, ya que permite cambiar a renderizado dinámico y ver los cambios en borrador sin necesidad de reconstruir todo el sitio.
Esta guía explica cómo habilitar y usar el Modo Borrador.
Paso 1: Crear un Manejador de Ruta
Crea un Manejador de Ruta. Puede tener cualquier nombre, por ejemplo, app/api/draft/route.ts
.
Luego, importa la función draftMode
y llama al método enable()
.
Esto establecerá una cookie para habilitar el modo borrador. Las solicitudes posteriores que incluyan esta cookie activarán el modo borrador y cambiarán el comportamiento de las páginas generadas estáticamente.
Puedes probar esto manualmente visitando /api/draft
y revisando las herramientas de desarrollo de tu navegador. Observa el encabezado de respuesta Set-Cookie
con una cookie llamada __prerender_bypass
.
Paso 2: Acceder al Manejador de Ruta desde tu CMS Headless
Estos pasos asumen que tu CMS headless admite la configuración de URLs de borrador personalizadas. Si no es así, aún puedes usar este método para proteger tus URLs de borrador, pero necesitarás construir y acceder a la URL manualmente. Los pasos específicos variarán según el CMS headless que uses.
Para acceder de forma segura al Manejador de Ruta desde tu CMS headless:
- Crea un token secreto usando un generador de tokens de tu elección. Este secreto solo lo conocerán tu aplicación Next.js y tu CMS headless.
- Si tu CMS headless admite URLs de borrador personalizadas, especifica una URL de borrador (esto asume que tu Manejador de Ruta está en
app/api/draft/route.ts
). Por ejemplo:
<tu-sitio>
debe ser tu dominio de despliegue.<token>
debe reemplazarse con el token secreto que generaste.<ruta>
debe ser la ruta de la página que deseas ver. Si quieres ver/posts/uno
, entonces debes usar&slug=/posts/uno
.Tu CMS headless podría permitirte incluir una variable en la URL de borrador para que
<ruta>
se establezca dinámicamente según los datos del CMS, como:&slug=/posts/{entry.fields.slug}
- En tu Manejador de Ruta, verifica que el secreto coincida y que exista el parámetro
slug
(si no, la solicitud debe fallar), llama adraftMode.enable()
para establecer la cookie. Luego, redirige el navegador a la ruta especificada porslug
:
Si tiene éxito, el navegador será redirigido a la ruta que deseas ver con la cookie del modo borrador.
Paso 3: Previsualizar el Contenido en Borrador
El siguiente paso es actualizar tu página para verificar el valor de draftMode().isEnabled
.
Si solicitas una página que tiene la cookie establecida, los datos se obtendrán en tiempo de solicitud (en lugar de en tiempo de compilación).
Además, el valor de isEnabled
será true
.
Si accedes al Manejador de Ruta de borrador (con secret
y slug
) desde tu CMS headless o manualmente usando la URL, ahora deberías poder ver el contenido en borrador. Y, si actualizas tu borrador sin publicar, deberías poder ver los cambios.