Comment utiliser des images depuis assets dans le HTML d'un composant de thème basé sur Glimmer ?

Include assets (e.g. images, fonts) in themes and components semble toujours se référer à la manière Handlebars de procéder, si je comprends bien. La nouvelle méthode Glimmer est-elle déjà disponible pour rendre utilisables les images du répertoire assets du composant de thème dans un HTML(-template) du même composant de thème ?

Mon cas d’utilisation est de remplacer le composant de thème hérité maintenant cassé décrit dans Templating of my "component" broke. How do I fix it?.

Ce que j'ai essayé

J’ai généré un nouveau projet de composant de thème avec discourse_theme new discourse-tc-geowebforum-sponsors puis j’ai essayé de répliquer le plugin précédent sans la logique conditionnelle et avec un template en ligne, mais cela a conduit à

[THEME 6 'geowebforum-sponsors'] Error: [THEME 6 'geowebforum-sponsors'] Compile error: SyntaxError: /theme-6/discourse/api-initializers/geowebforum-sponsors.gjs: Attempted to resolve a helper in a strict mode template, but that value was not in scope: theme-relative-url: 

dans la console du navigateur.

J’ai également essayé diverses combinaisons de :

  • extraire le template dans une constante
  • accolades simples (au lieu de doubles)
  • utiliser un appel de fonction (themeRelativeUrl("asseco_berit.jpg")) entre les accolades
  • déplacer le template vers javascripts/discourse/components/geowebforum-sponsors.gjs (et l’importer depuis l’initialiseur)
  • déplacer le template vers javascripts/components/geowebforum-sponsors.gjs (et l’importer depuis l’initialiseur)
  • introduire une class GEOWebforumSponsorsComponent extends Component {} dans ce fichier et l’importer dans l’initialiseur (tout en exportant le template du même fichier que la classe sous le nom template, comme un LLM me l’avait suggéré – je ne sais toujours pas si cela aurait un sens.)

J’ai obtenu soit

  • la même erreur (bien que provenant de cet autre fichier)
    soit
  • klass is not an Ember component
    soit
  • des espaces réservés de template littéraux dans le DOM résultant, entraînant naturellement des 404 pour les sources d’images
2 « J'aime »

Hmm, as-tu vu ce passage ?