Include assets (e.g. images, fonts) in themes and components ainda parece se referir à maneira Handlebars de fazer as coisas, se estou entendendo corretamente. A nova maneira Glimmer já está disponível para tornar as imagens do diretório assets do componente de tema utilizáveis em um HTML(-template) do mesmo componente de tema?
Meu caso de uso é substituir o componente de tema legado agora quebrado descrito em Templating of my "component" broke. How do I fix it?.
O que eu tentei
Eu gerei um novo projeto de componente de tema com discourse_theme new discourse-tc-geowebforum-sponsors e então tentei replicar o plugin anterior sem a lógica condicional e com um template embutido, mas isso levou 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:
no console do navegador.
Eu também tentei várias combinações de:
- retirar o template para uma constante
- chaves curly simples (em vez de duplas)
- usar uma chamada de função (
themeRelativeUrl("asseco_berit.jpg")) dentro das chaves curly - mover o template para
javascripts/discourse/components/geowebforum-sponsors.gjs(e importá-lo do inicializador) - mover o template para
javascripts/components/geowebforum-sponsors.gjs(e importá-lo do inicializador) - introduzir uma
class GEOWebforumSponsorsComponent extends Component {}nesse arquivo e importá-la no inicializador (enquanto exporta o template do mesmo arquivo como a classe sob o nometemplate, como um LLM havia me sugerido – ainda não tenho certeza se isso faria algum sentido.)
Eu obtive ou
- o mesmo erro (embora daquele outro arquivo)
ou klass is not an Ember component
ou- placeholders de template literais no DOM resultante, levando naturalmente a 404s nas fontes das imagens