|
| 1 | +--- |
| 2 | +title: Référence de l'API des chemins statiques |
| 3 | +sidebar: |
| 4 | + label: 'astro:static-paths' |
| 5 | +i18nReady: true |
| 6 | +tableOfContents: |
| 7 | + minHeadingLevel: 2 |
| 8 | + maxHeadingLevel: 6 |
| 9 | +--- |
| 10 | +import ReadMore from '~/components/ReadMore.astro'; |
| 11 | +import Since from '~/components/Since.astro'; |
| 12 | + |
| 13 | +<p><Since v="6.0.0" /></p> |
| 14 | + |
| 15 | +Ce module fournit des utilitaires pour aider les adaptateurs à collecter les chemins statiques depuis leur environnement d'exécution cible (par exemple, `workerd`). Il n'offre une implémentation fonctionnelle que dans l'environnement `prerender` de Vite. Dans les autres environnements, il renvoie une implémentation sans opération. |
| 16 | + |
| 17 | +## Importations depuis `astro:static-paths` |
| 18 | + |
| 19 | +```js |
| 20 | +import { |
| 21 | + StaticPaths, |
| 22 | +} from 'astro:static-paths'; |
| 23 | +``` |
| 24 | + |
| 25 | +### `StaticPaths` |
| 26 | + |
| 27 | +Permet aux adaptateurs de collecter tous les chemins qui doivent être pré-rendus à partir de leur environnement d'exécution cible. Ceci est utile lors de la [mise en œuvre d'un pré-rendu personnalisé](/fr/reference/adapter-reference/#moteur-de-prérendu-personnalisé) exécuté dans un environnement non-Node : |
| 28 | + |
| 29 | +Le constructeur `StaticPaths` accepte un [manifeste SSR](/fr/reference/integrations-reference/#ssrmanifest) obligatoire et un objet décrivant le cache de routes et fournissant une méthode d'accès au composant utilisé pour le rendu de la route. La méthode préférée pour initialiser une instance `StaticPaths` consiste à lui passer une [instance d'application](/fr/reference/modules/astro-app/#linstance-app). |
| 30 | + |
| 31 | +L'exemple suivant initialise une instance `StaticPaths` à partir d'une application dans un point d'entrée de serveur d'adaptateur : |
| 32 | + |
| 33 | +```js title="my-adapter/server.js" |
| 34 | +import { createApp } from 'astro/app/entrypoint'; |
| 35 | +import { StaticPaths } from 'astro:static-paths'; |
| 36 | + |
| 37 | +const app = createApp(); |
| 38 | +const staticPaths = new StaticPaths(app); |
| 39 | + |
| 40 | +export const handler = (event, context) => { |
| 41 | + // faire quelque chose avec `staticPaths` |
| 42 | +}; |
| 43 | +``` |
| 44 | + |
| 45 | +#### `StaticPaths.getAll()` |
| 46 | + |
| 47 | +<p> |
| 48 | + |
| 49 | +**Type :** <code>() => Promise\<Array\<\{ pathname: string, route: <a href="/fr/reference/integrations-reference/#routedata">RouteData</a> \}\>\></code> |
| 50 | +</p> |
| 51 | + |
| 52 | +Récupère tous les chemins qui doivent être pré-rendus. Cette fonction renvoie une promesse qui se résout en un tableau d'objets décrivant le chemin de la route et ses données. |
| 53 | + |
| 54 | +L'exemple suivant collecte tous les chemins statiques à pré-générer avant de les renvoyer en tant que `Response` dans un gestionnaire d'adaptateur : |
| 55 | + |
| 56 | +```js title="my-adapter/handler.js" |
| 57 | +import { StaticPaths } from 'astro:static-paths'; |
| 58 | + |
| 59 | +export function createHandler(app) { |
| 60 | + return async (request) => { |
| 61 | + const { pathname } = new URL(request.url); |
| 62 | + |
| 63 | + // Point de terminaison pour collecter les chemins statiques lors de la compilation |
| 64 | + if (pathname === '/__astro_static_paths') { |
| 65 | + const staticPaths = new StaticPaths(app); |
| 66 | + const paths = await staticPaths.getAll(); |
| 67 | + // Renvoie un tableau de { pathname: string, route: RouteData } |
| 68 | + return new Response(JSON.stringify({ paths })); |
| 69 | + } |
| 70 | + |
| 71 | + // ... traiter d'autres requêtes |
| 72 | + }; |
| 73 | +} |
| 74 | +``` |
0 commit comments