Export Web/SCORM : corrige le chemin de l'icône doublé "static/static/"
Le premier correctif ("static/icons/x.svg") ne suffisait pas : cette URL
est posée en style inline (--icon-url) mais CONSOMMÉE par `mask-image:
var(--icon-url)` dans static/style.css (.icon-svg) — une URL relative
dans une propriété personnalisée CSS se résout par rapport à la feuille
de style où le var() est UTILISÉ, pas où elle est définie (piège CSS
connu). Résultat : "static/icons/x.svg" redevenait
"static/static/icons/x.svg" une fois résolu depuis static/style.css
(CORS bloqué — deuxième rapport du même utilisateur). Seul "icons/x.svg"
(sans le préfixe "static/") est correct une fois résolu depuis
static/style.css. Corrigé côté rendu initial
(_relativize_absolute_urls) et côté port JS (forgeRenderIcone, qui
régénère ce widget après une action).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
e08c53e042
commit
b60fe63a54
@@ -73,13 +73,17 @@ function forgeRenderIcone(el, meta, gameData, childrenMap, ctx, parentFlexDirect
|
||||
var existingClass = attrs.class || "";
|
||||
delete attrs.class;
|
||||
attrs.class = (existingClass + " icon-svg").trim();
|
||||
// Chemin RELATIF (jamais "/static/...") : ce fichier ne s'exécute que
|
||||
// dans le paquet exporté (window.FORGE_OFFLINE, voir render-element.js),
|
||||
// ouvert en local (file://) sans racine de serveur — un chemin absolu y
|
||||
// déclenche un blocage CORS ("la requête CORS n'utilise pas HTTP"),
|
||||
// exactement le bug qui affectait aussi le rendu initial côté serveur
|
||||
// (voir _relativize_absolute_urls dans publish/build_scorm_package.py).
|
||||
var iconUrl = "static/icons/" + iconSlug + ".svg";
|
||||
// Chemin RELATIF, et surtout PAS préfixé "static/" : cette URL est
|
||||
// posée dans --icon-url (style inline) mais CONSOMMÉE par `mask-image:
|
||||
// var(--icon-url)` dans static/style.css (voir .icon-svg) — une URL
|
||||
// relative dans une propriété personnalisée CSS se résout par rapport à
|
||||
// LA FEUILLE DE STYLE où le var() est utilisé (static/style.css), pas
|
||||
// où elle est définie (piège CSS connu) : "static/icons/x.svg" y
|
||||
// redeviendrait "static/static/icons/x.svg" (404/CORS bloqué — bug
|
||||
// signalé). "icons/x.svg" est correct une fois résolu depuis
|
||||
// static/style.css (voir aussi _relativize_absolute_urls dans
|
||||
// publish/build_scorm_package.py, même correctif côté rendu initial).
|
||||
var iconUrl = "icons/" + iconSlug + ".svg";
|
||||
var style = forgeStyleString(el, parentFlexDirection, el.widget) + " --icon-url:url('" + iconUrl + "');";
|
||||
return "<i " + forgeAttrString(attrs, style) + "></i>";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user