Consentl avec Astro
Ajoutez le chargeur Consentl au layout de base Astro avec is:inline, pour qu’Astro ne l’intègre pas dans un module différé. Compatible view transitions (ClientRouter).
- Chargeur en premier dans <head>
- Oui
Le chargeur doit être le premier script dans <head> et être synchrone. Dans Astro, is:inline est
obligatoire : sans cet attribut, Astro intègre le script dans un module différé.
Testé avec Astro 6.4 sous Node 22. Astro 7 nécessite Node 22.23.4 ou ultérieur et n’a pas encore été testé.
Layout de base
---
// src/layouts/BaseLayout.astro
const { lang = "en", title } = Astro.props;
const SITE_KEY = import.meta.env.PUBLIC_CONSENTL_SITE_KEY;
if (!SITE_KEY) throw new Error("Set PUBLIC_CONSENTL_SITE_KEY to your Consentl site key (sk_…)");
const loader = `https://api.consentl.com/v1/loader.js?k=${encodeURIComponent(SITE_KEY)}&l=${encodeURIComponent(lang)}`;
---
<html lang={lang}>
<head>
<meta charset="utf-8" />
<script is:inline src={loader}></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>{title}</title>
</head>
<body>
<slot />
<footer><a href="#consentl">Cookie settings</a></footer>
</body>
</html>
La vérification de SITE_KEY fait échouer le build lorsque la variable d’environnement est absente, au lieu de
publier k=undefined.
View transitions
Avec <ClientRouter />, Astro remplace le corps de la page à chaque navigation. La bannière, l’icône
flottante et les liens « Paramètres des cookies » continuent de fonctionner après chaque remplacement. Conservez la même adresse du chargeur sur
chaque page (le même l= pour une langue), afin qu’Astro ne l’exécute pas à nouveau, et n’y ajoutez pas
data-astro-rerun.
Vérifier le fonctionnement
Affichez le code source de la page : le chargeur est le premier <script> dans <head>. Suivez ensuite les vérifications de
Tout site web.
Consent Mode nécessite le forfait Pro ou supérieur, le blocage automatique des traceurs connus le forfait Business ;
avec Free, seules les balises que vous marquez vous-même attendent le consentement. Les balises écrites dans le HTML de la page sont
demandées avant le consentement, sauf si vous les marquez type="text/plain" data-consentl="…" (voir
Tout site web).
Limites
- Les intégrations qui injectent des scripts au-dessus du contenu
<head>de votre layout s’exécutent avant Consentl. - Si vous envoyez une Content Security Policy, autorisez
https://api.consentl.com(voir Tout site web).
Guides associés
Vous êtes bloqué ? Écrivez à support@consentl.com — nous répondons en anglais les jours ouvrables.