Skip to content

Type de ressource : Route Astro (Page SSR avec Preview)
Fichier source : src/pages/welcome.astro
Statut : Actif

Page welcome affichant le message AMN depuis Sanity. Supporte le mode preview pour visualiser les drafts. Affiche une banniÚre de preview si le mode est activé.

  • Afficher le message AMN depuis Sanity
  • Supporter le mode preview pour les drafts
  • Tester l’intĂ©gration preview Sanity
  • Fournir une interface simple pour tester la preview
Propriété Valeur
URL publique /welcome
Mode de rendu SSR
Type Page HTML
Méthode HTTP GET
Authentification requise Preview uniquement (cookie)
Cache No-store en mode preview
[RequĂȘte utilisateur]
│
▌
[Cloudflare Pages / Edge]
│ ‱ Middleware (cookie sanity-preview)
▌
[Astro Route (welcome.astro)]
│ ‱ DĂ©tection du mode preview (cookie)
│ ‱ RĂ©cupĂ©ration du message AMN via getAmn(isPreview)
│ ‱ Rendu du composant
▌
[Réponse HTML]
Composant RĂŽle Couche
welcome.astro Définition de la route L2 (Astro)
getAmn() Récupération du message AMN L2 (Astro)
Preview cookie Détection du mode preview L2 (Astro)
---
import { getAmn } from '../lib/sanity'
export const prerender = false
const isPreview = Astro.cookies.get('sanity-preview')?.value === 'true'
const amn = await getAmn(isPreview)
---
<html lang="fr">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>Welcome, AMN</title>
</head>
<body>
{isPreview && (
<div class="preview-banner">
⚠ <strong>Mode Preview ActivĂ©</strong> — Visualisation des brouillons Sanity non publiĂ©s (Drafts).
<a href="/api/exit-preview" class="exit-link">Quitter la preview</a>
</div>
)}
<main>
<h1>Welcome, AMN</h1>
{amn ? (
<div class="card">
<p><strong>Message from Sanity:</strong> {amn.message}</p>
<p><strong>Status:</strong> <span class="status-tag">{amn.status}</span></p>
{isPreview && (
<p class="draft-indicator">📄 Ce contenu est rendu via la perspective Drafts Sanity.</p>
)}
</div>
) : (
<p>No active AMN message found in Sanity</p>
)}
</main>
</body>
</html>
*[_type == "amn" && status == "active"][0]

Aucune requĂȘte secondaire n’est utilisĂ©e.

// Type AMN (manuel, sanity-typegen non implémenté)
export type Amn = {
_id: string;
_type: 'amn';
message: string;
status: 'active' | 'inactive';
};

Aucun paramĂštre d’URL n’est utilisĂ©.

Aucune query string n’est utilisĂ©e.

Code HTTP Condition Réponse
200 SuccĂšs Page HTML
500 Erreur Sanity (getAmn) Page HTML avec message d’erreur
Mode Cache-Control CDN-Cache-Control Rationale
SSR Preview Non configurĂ© Non configurĂ© À configurer (no-store recommandĂ©)
SSR standard Non configuré Non configuré Par défaut Cloudflare

Non implémenté - pas de headers de cache explicites.

Balise Source Fallback
<title> HardcodĂ© “Welcome, AMN” -
<meta name="viewport"> Hardcodé -
  • ❌ Cette route est-elle incluse dans le sitemap ? Non (page de test)
  • ❌ FrĂ©quence de mise Ă  jour : N/A
  • ❌ PrioritĂ© : N/A
  • ❌ Cette route est-elle indexĂ©e par Pagefind ? Non (Pagefind non configurĂ©)

Aucun composant UI n’est utilisĂ© (page simple sans composants).

Condition Comportement
AccĂšs public Page accessible sans authentification
Mode Preview Cookie sanity-preview requis pour voir les drafts

Non applicable (pas de paramĂštres d’entrĂ©e).

Non implémenté dans cette route (à configurer via Middleware Cloudflare).

SymptĂŽme Cause probable Solution
Message AMN non affichĂ© Aucun document AMN actif CrĂ©er un document AMN avec status “active”
Preview non fonctionnel Cookie manquant Vérifier le cookie sanity-preview
Erreur Sanity Variables d’environnement manquantes VĂ©rifier SANITY_PROJECT_ID, SANITY_DATASET
Terminal window
# Logs de développement
npm run dev
# Vérification des types
npx astro check
Terminal window
# Test de la route en local
curl -I http://localhost:4321/welcome
# Test du mode preview
curl -I -b "sanity-preview=true" http://localhost:4321/welcome
  • ✅ DĂ©tection automatique du mode preview via cookie
  • ✅ Affichage conditionnel de la banniĂšre preview
  • ✅ Lien pour quitter la preview
  • ✅ Pas de JavaScript inutile
  • ✅ HTML statique par dĂ©faut
  • ✅ Tester le mode preview rĂ©guliĂšrement
  • ✅ VĂ©rifier l’intĂ©gration Sanity
  • Configuration des headers de cache (no-store en preview)
  • Ajout de structured data (JSON-LD)
  • Personnalisation du design
  • ❌ Pas de structured data (JSON-LD)
  • ❌ Headers de cache non configurĂ©s
  • ❌ Langue hardcodĂ©e en ‘fr’
  • Documentation Astro : Routing
  • Fichiers concernĂ©s :
    • src/pages/welcome.astro
    • src/lib/sanity.ts (getAmn)
    • src/pages/api/preview.ts
    • src/pages/api/exit-preview.ts
Date Version Description Auteur
2026-09-15 1.0 Création initiale Devin
Edit page

Last updated: