Sync theme assets

L'action Sync theme assets re-upload la CSS du thème actif + ses fichiers JS companion à sur Flexweg depuis le bundlé du manifest (avec les overrides appliqués si présents).

L'action Sync theme assets re-upload la CSS du thème actif + ses fichiers JS companion à /theme-assets/ sur Flexweg depuis le cssText bundlé du manifest (avec les overrides compileCss(config) appliqués si présents).

C'est une opération en un clic quand vous avez besoin de :

  • Rafraîchir la CSS publique après édition des réglages thème
  • Récupérer d'un déploiement partiel où theme-assets/ n'a pas été uploadé
  • Re-émettre les scripts loader de menus / posts après leur suppression

Le bouton vit dans Thèmes → Sync theme assets en haut de la page.

Ce qui est synchronisé

Fichier Path sur Flexweg Source
CSS /theme-assets/<id>.css compileCss(savedConfig) ou manifest.cssText
Menu loader /theme-assets/<id>-menu.js manifest.jsText ou fichier dédié
Posts loader /theme-assets/<id>-posts.js (si présent)
Search loader /theme-assets/<id>-search.js (si présent)

Tous les fichiers déclarés par le manifest sont re-uploadés en parallèle. Échec d'un fichier = toast d'erreur, mais les autres tentent quand même.

Quand ça se déclenche automatiquement

  1. Activation d'un thème — sync auto déclenché en arrière-plan
  2. Save d'une page de réglages thème — sync auto via applyAndUploadCustomCss (si le thème a wired ce pattern)
  3. Save dans Settings → General — pas de sync (les réglages site n'affectent pas la CSS thème)

Quand vous devez le déclencher manuellement

  • Après un déploiement de dist/admin/ mis à jour qui contient une nouvelle version du thème
  • Si les theme-assets/ ont été supprimés manuellement (rare — recovery)
  • Si les overrides de palette / polices ne semblent pas s'appliquer (peut être un cache navigateur — re-sync force le refresh)

Cache busting

Les pages HTML publiées référencent la CSS via <link rel="stylesheet" href="/theme-assets/<id>.css"> sans paramètre de version. Donc le navigateur peut servir une version cachée.

Le Cache-Control de Flexweg sur les fichiers CSS est typiquement max-age=3600 (1h). Donc après un sync, comptez jusqu'à 1h pour que tous les visiteurs voient la nouvelle CSS sans hard-refresh.

Pour forcer un refresh immédiat côté visiteur, demandez-leur de faire Cmd+Shift+R (hard reload). Ou attendez le passage du cache.

Pas de versioning de l'URL

Pas de mécanisme automatique pour ajouter un ?v=hash à l'URL CSS. C'est délibérément simple — la majorité des changements de CSS sont des tweaks acceptables avec le cache 1h.

Pour une invalidation forte, vous pouvez customiser le BaseLayout du thème pour ajouter un ?v=<timestamp> manuel. Ou utiliser un service worker (plus complexe).

Pendant le sync

Un toast affiche « Syncing theme assets… » puis « Synced N file(s). » à la fin.

Si vous fermez l'onglet pendant le sync, l'opération s'arrête net — re-lancez via le bouton si nécessaire.

Le compileCss est obligatoire si vous avez des overrides

Sans compileCss, chaque sync upload cssText brute (sans les overrides utilisateur). Donc tous les ajustements de palette / polices que l'admin a faits seraient écrasés au prochain sync.

Si vous écrivez un thème custom avec une page de réglages : déclarez compileCss(config) qui prend les overrides et produit la CSS finale.

Différence avec Regenerate site → Theme assets

Regenerate site → Theme assets fait exactement la même chose que le bouton Sync theme assets. Le second est juste un raccourci accessible depuis la page Thèmes.

Regenerate site → All HTML pages fait quelque chose de différent : re-rend chaque page HTML publiée. Ne touche pas aux theme assets.

Donc :

  • Vous changez le réglage du thème → Sync theme assets suffit (la nouvelle CSS s'applique aux pages déjà publiées via le <link rel="stylesheet">)
  • Vous changez le code du thème (template, blocs) → Sync theme assets + Regenerate all HTML (la CSS ET le HTML doivent être mis à jour)