Include assets (e.g. images, fonts) in themes and components は、まだ Handlebars のやり方を参照しているように思えますが、私の理解が正しければ。同じテーマコンポーネントの HTML(-template) で、テーマコンポーネントの assets ディレクトリから画像を取得するための新しい Glimmer の方法はすでに利用可能になっていますか?
私のユースケースは、Templating of my "component" broke. How do I fix it? で説明されている、現在壊れているレガシーテーマコンポーネントを置き換えることです。
試したこと
discourse_theme new discourse-tc-geowebforum-sponsors で新しいテーマコンポーネントプロジェクトを生成し、条件ロジックをなくしインラインテンプレートを使用して以前のプラグインを再現しようとしましたが、その結果ブラウザコンソールで以下のエラーが発生しました。
[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:
また、以下のようなさまざまな組み合わせを試しました。
- テンプレートを定数として取り出す
- 波括弧を二重ではなく一重にする
- 波括弧内で関数呼び出し (
themeRelativeUrl("asseco_berit.jpg")) を使用する - テンプレートを
javascripts/discourse/components/geowebforum-sponsors.gjsに移動し(そしてイニシャライザからインポートする) - テンプレートを
javascripts/components/geowebforum-sponsors.gjsに移動し(そしてイニシャライザからインポートする) - そのファイルに
class GEOWebforumSponsorsComponent extends Component {}を導入し(そしてイニシャライザからインポートする)、同じファイルから名前をtemplateとしてエクスポートする(LLMが私に提案したもので、それが意味をなすのかどうかまだ確信が持てない)
その結果、以下のいずれかになりました。
- 同じエラー(ただし別のファイルから)
または klass is not an Ember component
または- 結果の DOM 内の文字通りのテンプレートプレースホルダ(当然ながら画像ソースに対して 404 エラーが発生する)