Include assets (e.g. images, fonts) in themes and components 은 여전히 handlebars 방식을 언급하고 있는 것 같습니다. 제 이해가 맞다면요. 같은 테마 컴포넌트의 HTML(템플릿)에서 사용할 수 있도록, 테마 컴포넌트의 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 {}를 도입하고 이니셜라이저에서 이를 가져오기(동시에 LLM이 제안한 대로 같은 파일에서 클래스와 함께template이라는 이름으로 템플릿을 내보내기 – 이것이 어떤 의미가 있을지 여전히 확신이 서지 않습니다.)
그 결과 다음과 같은 것 중 하나가 발생했습니다:
- 동일한 오류(다만 다른 파일에서 발생)
또는 klass is not an Ember component
또는- 결과 DOM에 리터럴 템플릿 플레이스홀더가 표시되어, 자연스럽게 이미지 소스에 대한 404 오류가 발생