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
@@ -67,9 +67,21 @@ def _relativize_absolute_urls(html, slug):
|
||||
ailleurs que dans une URL réellement générée par le moteur. Sans ce
|
||||
correctif, un index.html ouvert en local (file://) échouait à charger
|
||||
icônes/sprites/fichiers envoyés (CORS bloque une requête absolue vers
|
||||
file:///static/... — "la requête CORS n'utilise pas HTTP")."""
|
||||
file:///static/... — "la requête CORS n'utilise pas HTTP").
|
||||
|
||||
Cas particulier des icônes (render_icone.py) : leur URL est posée dans
|
||||
un style INLINE (--icon-url), mais CONSUMÉ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É, pas où elle est définie
|
||||
(piège CSS connu). "icons/x.svg" (juste "/static/" retiré, sans le
|
||||
garder) reste donc correct une fois résolu depuis static/style.css,
|
||||
alors que "static/icons/x.svg" y redevient "static/static/icons/x.svg"
|
||||
(bug signalé — CORS bloqué sur ce chemin doublé). Traité EN PREMIER,
|
||||
plus spécifique que le remplacement générique juste après."""
|
||||
return (
|
||||
html.replace(f"/game/{slug}/uploads/", "uploads/")
|
||||
.replace("/static/icons/", "icons/")
|
||||
.replace("/static/", "static/")
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user