Come utilizzo le immagini dalle risorse (assets) nell'HTML di un componente tema basato su Glimmer?

Include assets (e.g. images, fonts) in themes and components sembra fare ancora riferimento al modo Handlebars di fare le cose, se ho capito bene. Il nuovo modo Glimmer è già disponibile per rendere utilizzabili le immagini dalla directory assets del componente tema in un HTML(-template) dello stesso componente tema?

Il mio caso d’uso è sostituire il componente tema legacy ora non funzionante descritto in Templating of my "component" broke. How do I fix it?.

Cosa ho provato

Ho generato un nuovo progetto di componente tema con discourse_theme new discourse-tc-geowebforum-sponsors e poi ho provato a replicare il plugin precedente senza la logica condizionale e con un template inline, ma ciò ha portato a

[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:

nella console del browser.

Ho anche provato varie combinazioni di:

  • estrarre il template in una costante
  • doppie parentesi graffe singole (invece di)
  • usare una chiamata di funzione (themeRelativeUrl("asseco_berit.jpg")) all’interno delle parentesi graffe
  • spostare il template in javascripts/discourse/components/geowebforum-sponsors.gjs (e importarlo dall’initializer)
  • spostare il template in javascripts/components/geowebforum-sponsors.gjs (e importarlo dall’initializer)
  • introdurre una class GEOWebforumSponsorsComponent extends Component {} in quel file e importarla nell’initializer (esportando contemporaneamente il template dallo stesso file come classe sotto il nome template, come un LLM mi aveva suggerito – sono ancora incerto se avrebbe avuto senso.)

Ho ottenuto o

  • lo stesso errore (sebbene da quell’altro file)
    o
  • klass is not an Ember component
    o
  • segnaposto di template letterali nel DOM risultante, che naturalmente portano a 404 per le sorgenti delle immagini
2 Mi Piace

Hmm, hai visto questo passaggio?