Include assets (e.g. images, fonts) in themes and components scheint sich, wenn ich es richtig verstehe, immer noch auf den Handlebars-Weg zu beziehen. Ist der neue Glimmer-Weg bereits verfügbar, um Bilder aus dem assets-Verzeichnis der Themenkomponente in einer HTML(-Vorlage) derselben Themenkomponente nutzbar zu machen?
Mein Anwendungsfall ist der Ersatz der jetzt defekten Legacy-Themenkomponente, die unter Templating of my "component" broke. How do I fix it? beschrieben wird.
Was ich versucht habe
Ich habe ein neues Themenkomponentenprojekt mit discourse_theme new discourse-tc-geowebforum-sponsors generiert und dann versucht, das vorherige Plugin ohne die bedingte Logik und mit einer Inline-Vorlage zu replizieren, was jedoch zu Folgendem führte:
[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:
in der Browserkonsole.
Ich habe auch verschiedene Kombinationen ausprobiert:
- Die Vorlage in eine Konstante auslagern
- Einfache (anstelle von doppelten) geschweifte Klammern
- Einen Funktionsaufruf (
themeRelativeUrl("asseco_berit.jpg")) innerhalb der geschweiften Klammern verwenden - Die Vorlage nach
javascripts/discourse/components/geowebforum-sponsors.gjsverschieben (und sie aus dem Initialisierer importieren) - Die Vorlage nach
javascripts/components/geowebforum-sponsors.gjsverschieben (und sie aus dem Initialisierer importieren) - Eine
class GEOWebforumSponsorsComponent extends Component {}in dieser Datei einführen und diese im Initialisierer importieren (während die Vorlage unter dem Namentemplateaus derselben Datei wie die Klasse exportiert wird, wie eine LLM mir vorgeschlagen hat – ich bin mir immer noch nicht sicher, ob das irgendeinen Sinn ergeben würde.)
Ich erhielt entweder:
- denselben Fehler (wenn auch aus dieser anderen Datei)
oder klass is not an Ember component
oder- wörtliche Vorlagenplatzhalter im resultierenden DOM, was natürlich zu 404-Fehlern für die Bildquellen führte.