Salut @merefield – Est-ce toujours la façon de faire ?
J’essaie d’intégrer qrcode.js pour générer un QRcode dans le navigateur.
Je suis bloqué par CSP. Je ne comprends pas comment il s’agit d’un problème CSP si c’est sur le même hôte. Ceci est sur un serveur de production utilisant discourse_theme pour le débogage.
Et il semble que la fonction ne soit pas appelée pour charger le script si je n’appelle pas this.ensureQRCode();, ce que vous ne semblez pas faire dans votre composant.
Le script est disponible et je peux le récupérer (donc j’ai bien mis les éléments dans about.json et /assets/qrcode.js), mais le navigateur refuse de le charger.
Le résultat de votre loadscript est une promesse, vous devez donc placer votre code qui en dépend dans un bloc .then, conformément à mon exemple de code.
Cela résout le problème CSP, rend le thème autonome et est considéré comme une bonne pratique, au lieu de le charger à partir de tiers.
Le charger paresseusement
Uniquement lorsque c’est nécessaire, vous pouvez le charger paresseusement en utilisant await loadScript. Cela signifie qu’il ne sera pas chargé sur les pages où il n’est pas nécessaire, ce qui ralentira l’ensemble de votre site.