Aller au contenu

Tape un mot pour chercher dans les pages.

↑↓ Choisir↵ OuvrirÉchap Fermer

Guides

Mets un dossier de HTML, CSS et images en ligne en une commande, sans étape de build.

Un site statique est un dossier de fichiers déjà prêts : HTML, CSS, JavaScript et images. Aucun build n’est nécessaire. Une seule commande suffit.

Résultat attendu : une adresse de production qui sert ton dossier, avec une page 404 personnalisée si tu en fournis une.

Avant de commencer : une clé d’API dans VERCEL_TOKEN, et un dossier qui contient un index.html à sa racine.

Déployer le dossier

cd mon-site
vercel --api https://api.host.hgdc.ch deploy --prod

Le premier déploiement crée le projet, sous le nom du dossier, et relie le dossier au projet. Les suivants republient ce qui a changé : un fichier déjà connu de l’organisation n’est jamais renvoyé.

Vérification : l’adresse de production répond avec index.html.

Structure attendue

mon-site/
├── index.html
├── a-propos.html
├── 404.html
├── styles.css
└── images/
└── logo.svg
  • Le dossier doit contenir un index.html à sa racine.
  • Un dossier qui ressemble à des sources, avec un package.json mais sans index.html, est refusé. Construis-le avec vercel build et envoie-le avec --prebuilt. Voir Déployer un framework.
  • Les fichiers et dossiers cachés, comme .env ou .git, ne sont jamais servis.
  • 404.html sert de page d’erreur.

Servir un sous-dossier

Si les fichiers à publier sont dans un sous-dossier, comme public/ ou dist/, lance la commande depuis ce sous-dossier (cd dist, puis deploy). Avec un projet relié à GitHub, indique le dossier de sortie dans les réglages de build du projet.

URL propres et redirections

Ajoute un vercel.json à la racine du dossier pour servir /a-propos sans .html, ou pour rediriger une ancienne adresse :

{
"cleanUrls": true,
"redirects": [
{ "source": "/ancienne-page", "destination": "/a-propos", "permanent": true }
]
}

Toutes les options sont dans vercel.json.

Si ça ne marche pas

  • Le site répond 404 : le dossier envoyé n’a pas d’index.html à sa racine. Voir Dépannage.
  • /a-propos répond 404 alors que a-propos.html existe : active cleanUrls dans vercel.json.