Comment prévisualiser du contenu avec le mode brouillon dans Next.js
Le mode brouillon vous permet de prévisualiser du contenu en cours de rédaction depuis votre CMS headless dans votre application Next.js. Ceci est particulièrement utile pour les pages statiques générées au moment de la construction, car il vous permet de basculer vers un rendu dynamique et de voir les modifications en cours sans avoir à reconstruire l'intégralité de votre site.
Cette page vous guide pas à pas pour activer et utiliser le mode brouillon.
Étape 1 : Créer un gestionnaire de route
Créez un gestionnaire de route. Il peut porter n'importe quel nom, par exemple app/api/draft/route.ts
.
Ensuite, importez la fonction draftMode
et appelez la méthode enable()
.
Cette action définit un cookie pour activer le mode brouillon. Les requêtes ultérieures contenant ce cookie déclencheront le mode brouillon et modifieront le comportement des pages générées statiquement.
Vous pouvez tester cela manuellement en visitant /api/draft
et en examinant les outils de développement de votre navigateur. Notez l'en-tête de réponse Set-Cookie
avec un cookie nommé __prerender_bypass
.
Étape 2 : Accéder au gestionnaire de route depuis votre CMS headless
Ces étapes supposent que votre CMS headless prend en charge la configuration d'URLs de brouillon personnalisées. Si ce n'est pas le cas, vous pouvez toujours utiliser cette méthode pour sécuriser vos URLs de brouillon, mais vous devrez construire et accéder à l'URL manuellement. Les étapes spécifiques varieront selon le CMS headless utilisé.
Pour accéder de manière sécurisée au gestionnaire de route depuis votre CMS headless :
- Créez une chaîne de jeton secrète à l'aide d'un générateur de jetons de votre choix. Ce secret ne sera connu que par votre application Next.js et votre CMS headless.
- Si votre CMS headless prend en charge les URLs de brouillon personnalisées, spécifiez une URL de brouillon (en supposant que votre gestionnaire de route se trouve à
app/api/draft/route.ts
). Par exemple :
<votre-site>
doit être votre domaine de déploiement.<jeton>
doit être remplacé par le jeton secret que vous avez généré.<chemin>
doit être le chemin de la page que vous souhaitez visualiser. Si vous voulez voir/posts/un
, utilisez&slug=/posts/un
.Votre CMS headless peut vous permettre d'inclure une variable dans l'URL de brouillon pour que
<chemin>
soit défini dynamiquement en fonction des données du CMS, comme ceci :&slug=/posts/{entry.fields.slug}
- Dans votre gestionnaire de route, vérifiez que le secret correspond et que le paramètre
slug
existe (sinon, la requête doit échouer), appelezdraftMode.enable()
pour définir le cookie. Ensuite, redirigez le navigateur vers le chemin spécifié parslug
:
Si cela réussit, le navigateur sera redirigé vers le chemin que vous souhaitez visualiser avec le cookie de mode brouillon.
Étape 3 : Prévisualiser le contenu en brouillon
L'étape suivante consiste à mettre à jour votre page pour vérifier la valeur de draftMode().isEnabled
.
Si vous demandez une page pour laquelle le cookie est défini, les données seront récupérées au moment de la requête (au lieu du moment de la construction).
De plus, la valeur de isEnabled
sera true
.
Si vous accédez au gestionnaire de route de brouillon (avec secret
et slug
) depuis votre CMS headless ou manuellement via l'URL, vous devriez maintenant pouvoir voir le contenu en brouillon. Et si vous mettez à jour votre brouillon sans le publier, vous devriez pouvoir visualiser les modifications.