2.9.0.beta2에서 above-site-header.hbs 커넥터 관련 Handlebars 오류

안녕하세요,

저는 두 개의 Discourse 앱을 운영하고 있습니다. 둘 다 2.9.0beta2로 업그레이드했는데, 첫 번째 앱은 문제없이 진행되었지만 두 번째 앱에서는 Uncaught ReferenceError: Handlebars is not defined라는 콘솔 오류가 발생했습니다.

두 앱의 유일한 차이는 서로 다른 커스텀 테마를 사용한다는 점입니다. 오류가 발생한 앱에는 above-site-header.hbs 커넥터가 있고, 다른 앱에는 없습니다. JS 오류가 above-site-header.hbs 파일을 가리키고 있는 것 같습니다. 2.9.0beta2에서 Handlebars가 로드되기 전에 이 파일이 먼저 로드되는 것이 가능한가요? 안정 버전(2.8.1)으로 되돌렸을 때 두 앱 모두 정상적으로 작동합니다. 혹시 아이디어가 있으신가요?

깨진 테마나 깨진 사이트의 URL을 공유해 주시면, 무엇이 문제인지 파악할 가능성이 더 높아집니다. (혹시 둘 다 비공개이거나 비밀번호가 걸려 있는 건가요?)

사이트와 테마 모두 비공개 상태인 것 같습니다. 현재 사이트는 수정되었습니다. app.yml의 버전을 기본값인 tests-passed로 유지하는 대신 stable로 변경하면 문제가 해결되므로, 이 베타 버전이 원인이 맞음을 시사합니다. 오류가 발생하는 파일은 다음 위치에 있습니다:

connectors/above-site-header/jc-header.hbs (제목에서 above-site-header.hbs에 있다고 잘못 기재했는데, 제 실수입니다)

도움이 된다면 몇 가지 검사를 실행해 드릴 수 있지만, 안타깝게도 사이트나 테마를 공유할 수는 없습니다!

감사합니다.
Quinn Koike

그렇다면 테마를 복사한 뒤, 오류가 사라질 때까지 작은 단위로 شيئ를 삭제해 보세요. 그러면 마지막에 삭제한 항목이 오류의 원인이었을 것입니다.

jc-header.hbs 파일의 코드를 몇 줄 올려주시면 도움이 될 것 같습니다. 아마도 테마에 작은 호환성 업데이트만 필요한 것 같습니다.

안녕하세요, 최신 버전과 헤더 메뉴바 플러그인에서도 문제가 있습니다.

2.9.0beta1로 롤백해야 할 것 같습니다.

어떻게 해야 하는지 간단히 알려 주실 수 있을까요?

A

이 컨테이너는 어떤 Git 리비전을 사용해야 합니까? (기본값: tests-passed)

#version: tests-passed
version: ‘v2.9.0.beta1’

이렇게 설정하면 다음과 같은 오류가 발생합니다.

I, [2022-02-24T09:38:37.878937 #1] INFO – : > cd /var/www/discourse && git checkout v2.9.0.beta1
error: pathspec ‘v2.9.0.beta1’ did not match any file(s) known to git

감사합니다!

지금은 사무실에 없지만, 컴퓨터 앞에 앉으면 바로 여기에 올릴게요.

Handlebars 객체의 가져오기가 오래되었거나 누락된 것 같습니다.

안녕하세요,

참고로, 저희가 운영 중인 다른 비공개 Discourse 인스턴스에서도 2.9.0.beta2로 업그레이드한 후 브라우저 콘솔에서 동일한 오류를 확인했습니다.

이로 인해 DiscoTOC 테마 컴포넌트의 기능이 완전히 무력화되었습니다.

구식 discourse-knowledge-base 플러그인을 비활성화한 후, 시스템은 다시 정상적으로 작동하기 시작했으며 브라우저 콘솔에도 더 이상 오류가 표시되지 않았습니다.

감사합니다.
Andreas.

안녕하세요! 저도 방금 이 문제를 겪기 시작했어요! 제 사이트는 공개되어 있으니 확인해 보고 싶으시면 여기 있습니다: https://forum.simplecraft.us - 사용 중인 플러그인 목록을 제공해 드릴게요. 커스텀은 별로 없지만, Air 테마를 사용하고 있고 일부 커스텀 CSS를 적용해 두었습니다.

게시글, 예를 들어 공지사항의 최신 글 같은 것을 클릭할 때까지는 제 사이트에서는 모든 것이 정상적으로 작동하는 것 같습니다.

플러그인 목록
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-saml.git
          - git clone https://github.com/discourse/discourse-whos-online.git
          - git clone https://github.com/discourse/discourse-adplugin.git
          - git clone https://github.com/discourse/discourse-reactions.git
          - git clone https://github.com/discourse/discourse-automation.git
          - git clone https://github.com/discourse/discourse-user-notes.git
          - git clone https://github.com/discourse/discourse-sitemap.git
          - git clone https://github.com/discourse/discourse-fingerprint.git
          - git clone https://github.com/discourse/discourse-perspective-api.git
          - git clone https://github.com/discourse/discourse-voting.git
          - git clone https://github.com/discourse/discourse-subscriptions.git
          - git clone https://github.com/Simple-Craft/discourse-steam-login.git
          - git clone https://github.com/discourse/discourse-algolia.git
          - git clone https://github.com/discourse/discourse-chat-integration.git
          - git clone https://github.com/discourse/discourse-category-experts.git
          - git clone https://github.com/communiteq/discourse-private-replies.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/discourse/discourse-oauth2-basic.git
          - git clone https://github.com/discourse/discourse-jwt.git

테마의 JavaScript에 문제가 있는 것 같습니다. 다음 설정에서는 모든 기능이 정상적으로 작동합니다:

모든 테마 구성 요소를 비활성화한 후 하나씩 다시 활성화하여 원인을 찾아보시는 것을 권장합니다.

정말 감사합니다! 태그 아이콘 테마 컴포넌트가 자동으로 업데이트되도록 설정되어 있지 않았던 것 같습니다. 해당 설정을 수정하니 모든 문제가 해결되었습니다!

이 문제로 어려움을 겪고 있는 분들을 위해 공유합니다. 저희는 이전에 잘 작동하던 커스텀 플러그인이 있었는데, 갑자기 handlebars를 찾을 수 없게 되었습니다. handlebars를 yarn으로 설치하고 플러그인에서 명시적으로 require한 결과, 다시 정상적으로 작동하게 되었습니다. 왜 갑자기 명시적으로 require해야 하는지, 이전에는 왜 필요하지 않았는지는 확실하지 않지만, 제 경우에는 이 방법으로 해결되었습니다.

@HisashiQ 커스텀 플러그인 코드를 공유해 주실 수 있나요? handlebars를 수동으로 설치할 필요는 분명히 없어요. 위 토픽의 문제는 yarn 의존성이 아니라 JS 로드 순서와 관련이 있었습니다.