Export Web/SCORM : corrige les URLs absolues cassées en local (file://)
Bug signalé : icône disparue et texte suivant du dialogue absent après export. render_icone.py (et son miroir JS, forgeRenderIcone) bakaient une URL "/static/icons/..." en dur, correcte en ligne (racine du serveur Flask) mais bloquée par CORS une fois ouverte en local (file:///static/...). Même souci pour les fichiers envoyés par le créateur (/game/<slug>/uploads/..., jamais dans static/, jamais copiés par le paquet). Ajoute _relativize_absolute_urls (réécriture globale post-rendu du HTML) + copie du dossier uploads/, et relativise le port JS de l'icône pour toute régénération après action en mémoire. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
f3b72d73c9
commit
7bc4c89eaa
@@ -73,7 +73,13 @@ function forgeRenderIcone(el, meta, gameData, childrenMap, ctx, parentFlexDirect
|
||||
var existingClass = attrs.class || "";
|
||||
delete attrs.class;
|
||||
attrs.class = (existingClass + " icon-svg").trim();
|
||||
var iconUrl = "/static/icons/" + iconSlug + ".svg";
|
||||
// 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";
|
||||
var style = forgeStyleString(el, parentFlexDirection, el.widget) + " --icon-url:url('" + iconUrl + "');";
|
||||
return "<i " + forgeAttrString(attrs, style) + "></i>";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user