Aller au contenu

Tape un mot pour chercher dans les pages.

↑↓ Choisir↵ OuvrirÉchap Fermer
Ouvrir Host

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.