Type de ressource : Route Astro (Page SSR)
Fichier source :src/pages/index.astro
Statut : Actif
1. Vue dâensemble
Section titled â1. Vue dâensembleâ1.1. Description
Section titled â1.1. DescriptionâPage dâaccueil du site. Affiche un message de bienvenue avec un test dâintĂ©gration AMN (Message du schĂ©ma Sanity). Contient du contenu template Astro avec des liens vers les sections du site.
1.2. Objectif
Section titled â1.2. Objectifâ- Afficher la page dâaccueil du site
- Tester lâintĂ©gration Sanity via le message AMN
- Fournir une navigation vers les autres sections du site
- Servir de point dâentrĂ©e principal
1.3. Caractéristiques
Section titled â1.3. CaractĂ©ristiquesâ| PropriĂ©tĂ© | Valeur |
|---|---|
| URL publique | / |
| Mode de rendu | SSR (par défaut) |
| Type | Page HTML |
| Méthode HTTP | GET |
| Authentification requise | Non |
| Cache | Voir §6 |
2. Architecture et flux
Section titled â2. Architecture et fluxâ[RequĂȘte utilisateur] â âŒ[Cloudflare Pages / Edge] â âą Routage vers Astro âŒ[Astro Route (index.astro)] â âą RĂ©cupĂ©ration du message AMN via getAmn() â âą Rendu du composant âŒ[RĂ©ponse HTML]2.2. Composants impliquĂ©s
Section titled â2.2. Composants impliquĂ©sâ| Composant | RĂŽle | Couche |
|---|---|---|
index.astro |
Définition de la route | L2 (Astro) |
getAmn() |
Récupération du message AMN | L2 (Astro) |
BaseHead |
Métadonnées SEO globales | L2 (Astro) |
Header |
Navigation globale | L2 (Astro) |
Footer |
Pied de page global | L2 (Astro) |
3. Implémentation
Section titled â3. ImplĂ©mentationâ3.1. Code de la route
Section titled â3.1. Code de la routeâ---import BaseHead from '../components/BaseHead.astro';import Footer from '../components/Footer.astro';import Header from '../components/Header.astro';import { SITE_DESCRIPTION, SITE_TITLE } from '../consts';import { getAmn } from '../lib/sanity';
const amn = await getAmn();---
<!doctype html><html lang="en"> <head> <BaseHead title={SITE_TITLE} description={SITE_DESCRIPTION} /> </head> <body> <Header /> <main> <div style="background: #eef2ff; border: 1px solid #c7d2fe; padding: 1rem; border-radius: 8px; margin-bottom: 2rem;"> <h2>đ Welcome, AMN Integration Test</h2> {amn ? ( <div> <p><strong>Message Sanity:</strong> {amn.message}</p> <p><strong>Statut:</strong> {amn.status}</p> </div> ) : ( <p>No active AMN message found in Sanity. <a href="/welcome">Voir la page /welcome</a></p> )} </div> <h1>đ§âđ Hello, Astronaut!</h1> <p> Welcome to the official <a href="https://astro.build/">Astro</a> blog starter template... </p> <!-- ... --> </main> <Footer /> </body></html>4. DonnĂ©es et requĂȘtes GROQ
Section titled â4. DonnĂ©es et requĂȘtes GROQâ4.1. RequĂȘte principale
Section titled â4.1. RequĂȘte principaleâ*[_type == "amn" && status == "active"][0]4.2. RequĂȘtes secondaires
Section titled â4.2. RequĂȘtes secondairesâAucune requĂȘte secondaire nâest utilisĂ©e.
4.3. Types TypeScript associés
Section titled â4.3. Types TypeScript associĂ©sâ// Type AMN (manuel, sanity-typegen non implĂ©mentĂ©)export type Amn = { _id: string; _type: 'amn'; message: string; status: 'active' | 'inactive';};5. ParamĂštres et validation
Section titled â5. ParamĂštres et validationâ5.1. ParamĂštres dâURL
Section titled â5.1. ParamĂštres dâURLâAucun paramĂštre dâURL nâest utilisĂ©.
5.2. Query strings
Section titled â5.2. Query stringsâAucune query string nâest utilisĂ©e.
5.3. Gestion des erreurs
Section titled â5.3. Gestion des erreursâ| Code HTTP | Condition | RĂ©ponse |
|---|---|---|
| 200 | SuccĂšs | Page HTML |
| 500 | Erreur Sanity (getAmn) | Page HTML avec message dâerreur |
6. Stratégie de cache
Section titled â6. StratĂ©gie de cacheâ6.1. En-tĂȘtes de cache
Section titled â6.1. En-tĂȘtes de cacheâ| Mode | Cache-Control |
CDN-Cache-Control |
Rationale |
|---|---|---|---|
| SSR standard | Non configuré | Non configuré | Par défaut Cloudflare |
6.2. Implémentation dans la route
Section titled â6.2. ImplĂ©mentation dans la routeâNon implĂ©mentĂ© - pas de headers de cache explicites.
7. SEO et métadonnées
Section titled â7. SEO et mĂ©tadonnĂ©esâ7.1. Balises meta
Section titled â7.1. Balises metaâ| Balise | Source | Fallback |
|---|---|---|
<title> |
SITE_TITLE (const) |
- |
<meta name="description"> |
SITE_DESCRIPTION (const) |
- |
| Meta tags globaux | BaseHead |
- |
7.2. Sitemap
Section titled â7.2. Sitemapâ- â Cette route est-elle incluse dans le sitemap ? Oui (racine)
- â FrĂ©quence de mise Ă jour : daily
- â PrioritĂ© : 1.0
7.3. Indexation Pagefind
Section titled â7.3. Indexation Pagefindâ- â Cette route est-elle indexĂ©e par Pagefind ? Non (Pagefind non configurĂ©)
- â ïž Poids du titre : Non configurĂ©
- â ïž Filtres applicables : Non configurĂ©
8. Composants UI utilisés
Section titled â8. Composants UI utilisĂ©sâ| Composant | Fichier | RĂŽle | Hydratation |
|---|---|---|---|
BaseHead |
src/components/BaseHead.astro |
Métadonnées SEO | Aucune |
Header |
src/components/Header.astro |
Navigation globale | Aucune |
Footer |
src/components/Footer.astro |
Pied de page global | Aucune |
9. Sécurité
Section titled â9. SĂ©curitĂ©â9.1. AccĂšs et authentification
Section titled â9.1. AccĂšs et authentificationâ| Condition | Comportement |
|---|---|
| AccĂšs public | Page accessible sans authentification |
| Mode Preview | Non supporté (pas de logique preview) |
9.2. Validation des entrées
Section titled â9.2. Validation des entrĂ©esâNon applicable (pas de paramĂštres dâentrĂ©e).
9.3. En-tĂȘtes de sĂ©curitĂ©
Section titled â9.3. En-tĂȘtes de sĂ©curitĂ©âNon implĂ©mentĂ© dans cette route (Ă configurer via Middleware Cloudflare).
10. Débogage et troubleshooting
Section titled â10. DĂ©bogage et troubleshootingâ10.1. ProblĂšmes courants
Section titled â10.1. ProblĂšmes courantsâ| SymptĂŽme | Cause probable | Solution |
|---|---|---|
| Message AMN non affichĂ© | Aucun document AMN actif | CrĂ©er un document AMN avec status âactiveâ |
| Erreur Sanity | Variables dâenvironnement manquantes | VĂ©rifier SANITY_PROJECT_ID, SANITY_DATASET |
10.2. Logs et monitoring
Section titled â10.2. Logs et monitoringâ# Logs de dĂ©veloppementnpm run dev
# Vérification des typesnpx astro check10.3. Tests manuels
Section titled â10.3. Tests manuelsâ# Test de la route en localcurl -I http://localhost:4321/11. Bonnes pratiques
Section titled â11. Bonnes pratiquesâ11.1. Architecture
Section titled â11.1. Architectureâ- â Utiliser les composants globaux (Header, Footer, BaseHead)
- â Centraliser les constantes (SITE_TITLE, SITE_DESCRIPTION)
- â GĂ©rer les erreurs de maniĂšre Ă©lĂ©gante (message fallback)
11.2. Performance
Section titled â11.2. Performanceâ- â Pas de JavaScript inutile
- â HTML statique par dĂ©faut
11.3. Maintenance
Section titled â11.3. Maintenanceâ- â Mettre Ă jour le contenu template selon les besoins
- â Tester lâintĂ©gration Sanity rĂ©guliĂšrement
12. Ăvolutions et roadmap
Section titled â12. Ăvolutions et roadmapâ12.1. AmĂ©liorations planifiĂ©es
Section titled â12.1. AmĂ©liorations planifiĂ©esâ- Supprimer le contenu template Astro
- Ajouter un vrai contenu dâaccueil
- Support du mode preview
- Ajout de structured data (JSON-LD)
12.2. Limitations connues
Section titled â12.2. Limitations connuesâ- â Contenu template Astro (non personnalisĂ©)
- â Pas de support du mode preview
- â Pas de structured data (JSON-LD)
- â Langue hardcodĂ©e en âenâ
13. Ressources liées
Section titled â13. Ressources liĂ©esâ- Documentation Astro : Routing
- Fichiers concernés :
src/pages/index.astrosrc/lib/sanity.ts(getAmn)src/consts.ts(SITE_TITLE, SITE_DESCRIPTION)
14. Historique des modifications
Section titled â14. Historique des modificationsâ| Date | Version | Description | Auteur |
|---|---|---|---|
| 2026-09-15 | 1.0 | Création initiale | Devin |