Consentl met Astro
Voeg de Consentl-loader met is:inline toe aan uw Astro-basislayout, zodat Astro hem niet bundelt in een uitgestelde module. Werkt met view transitions (ClientRouter).
- Loader als eerste in <head>
- Ja
De loader moet het eerste script in <head> zijn en synchroon worden geladen. In Astro is
is:inline vereist: zonder dat bundelt Astro het script in een uitgestelde module.
Getest met Astro 6.4 op Node 22. Astro 7 vereist Node 22.23.4 of later en is nog niet getest.
Basislayout
---
// 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>
Door de controle op SITE_KEY mislukt de build als de omgevingsvariabele ontbreekt, in plaats van
dat k=undefined wordt gepubliceerd.
View transitions
Met <ClientRouter /> vervangt Astro bij elke navigatie de body van de pagina. De banner, het
zwevende pictogram en links "Cookie-instellingen" blijven na elke vervanging werken. Houd het adres
van de loader op elke pagina gelijk (dezelfde l= voor één taal), zodat Astro hem niet opnieuw
uitvoert, en voeg er geen data-astro-rerun aan toe.
Controleren of het werkt
Bekijk de paginabron: de loader is het eerste <script> in <head>. Volg daarna de controles in
Elke website.
Consent Mode vereist het plan Pro of hoger, automatische blokkering van bekende trackers het plan
Business; bij Free wachten alleen de tags die u zelf markeert op toestemming. Tags die in de HTML
van de pagina staan, worden vóór de toestemming opgevraagd, tenzij u ze markeert met
type="text/plain" data-consentl="…" (zie
Elke website).
Beperkingen
- Integraties die scripts boven de
<head>-inhoud van uw layout invoegen, worden vóór Consentl uitgevoerd. - Als u een Content Security Policy verstuurt, sta dan
https://api.consentl.comtoe (zie Elke website).
Gerelateerde handleidingen
Vastgelopen? Schrijf naar support@consentl.com — wij antwoorden op werkdagen in het Engels.