Vous pouvez transformer n'importe quelle application SvelteKit, peu importe l'adaptateur, en une SPA (Single Page Application) entièrement rendue sur le client en désactivant le SSR au niveau du layout racine : ```js /// file: src/routes/+layout.js export const ssr = false; ``` > [!NOTE] Dans la plupart des situations ceci n'est pas recommandé : cela pénalise le référencement, > tend à dégrader les performances perçues, et rend votre application inaccessibles si JavaScript > échoue à se charger ou n'est pas disponible (ce qui se produit [plus souvent que vous ne le > pensez](https://kryogenix.org/code/browser/everyonehasjs.html)). Si vous n'avez aucune logique purement serveur (c-à-d des fichiers `+page.server.js`, `+layout.server.js` ou `+server.js`), vous pouvez utiliser l'adaptateur [`adapter-static`](adapter-static) pour créer votre SPA en ajoutant une _page de secours_ (ou _fallback_). ## Usage Installez l'adaptateur avec `npm i -D @sveltejs/adapter-static`, puis ajoutez-le à votre fichier de configuration `svelte.config.js` avec les options suivantes : ```js // @errors: 2307 /// file: svelte.config.js import adapter from '@sveltejs/adapter-static'; export default { kit: { adapter: adapter({ fallback: '200.html' // peut être différent selon l'hébergeur }) } }; ``` La page `fallback` est une page HTML créée par SvelteKit à partir de votre gabarit de page (par ex. `app.html`) qui charge votre application et navigue vers la route appropriée. Par exemple [Surge](https://surge.sh/help/adding-a-200-page-for-client-side-routing), un hébergeur de sites statiques, vous permet d'ajouter un fichier `200.html` permettant de gérer toute requête ne correspondant pas aux assets statiques ni aux pages pré-rendues. Sur certains hébergeurs, ce fichier peut être `index.html` ou complètement autre chose — consultez la documentation de votre plateforme. > [!NOTE] Notez que la page de secours (`fallback`) va toujours contenir des chemins d'assets > absolus (c-à-d commençant par `/` plutôt que par `.`) peu importe la valeur de > [`paths.relative`](configuration#paths), puisque cette page est utilisée pour répondre aux > requêtes vers des chemins arbitraires. ## Apache Pour exécuter une SPA sur [Apache](https://httpd.apache.org/), vous devriez ajouter un fichier `static/.htaccess` pour diriger les requêtes vers la page de secours : ``` RewriteEngine On RewriteBase / RewriteRule ^200\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /200.html [L] ``` ## Pré-rendre des pages individuelles [!VO]Prerendering individual pages Si vous souhaitez que certaines pages soient pré-rendues, vous pouvez ré-activer l'option `ssr` en plus de `prerender` uniquement pour ces parties de votre application : ```js /// file: src/routes/my-prerendered-page/+page.js export const prerender = true; export const ssr = true; ```