안녕하세요, 여러분,
약 두 달 전부터 왼쪽에 있는 관리자 사이드바가 보이지 않습니다(스크린샷 참조). 설정이나 다른 곳에서 이 사이드바를 "활성화"할 수 있는 옵션을 찾을 수 없었습니다. 또한 시크릿(비공개) 브라우저 창을 사용해도 동일한 문제가 발생합니다.
이것이 어떤 원인으로 발생하는지 아시는 분이 계신가요?
감사합니다.
Mr. Xurrent
안녕하세요, 여러분,
약 두 달 전부터 왼쪽에 있는 관리자 사이드바가 보이지 않습니다(스크린샷 참조). 설정이나 다른 곳에서 이 사이드바를 "활성화"할 수 있는 옵션을 찾을 수 없었습니다. 또한 시크릿(비공개) 브라우저 창을 사용해도 동일한 문제가 발생합니다.
이것이 어떤 원인으로 발생하는지 아시는 분이 계신가요?
감사합니다.
Mr. Xurrent
포럼에 오신 것을 환영합니다 ![]()
안전 모드를 시도해 보셨나요? 문제가 플러그인이나 특정 컴포넌트에서 비롯된 것인지 확인할 수 있습니다.
브라우저 콘솔에 오류 메시지가 있는지 확인해 보시는 것도 좋습니다.
안녕하세요,
우연히 이 기능을 테스트해 봤는데, "안전 모드"에서는 관리자 사이드바가 정상적으로 표시됩니다.
어떤 플러그인이나 컴포넌트가 이러한 오류를 일으킬 수 있는지 알려줄 수 있을까요?
문제를 좁혀 보려면 먼저 safe mode에서 플러그인만, 그 다음 테마만 비활성화해 보세요. 그러면 어디를 확인해야 하는지 알 수 있습니다.
기본적으로 둘 다 관리자 사이드바에서 찾을 수 있습니다. 이제 다시 볼 수 있으니까요. 플러그인은 별도의 섹션이 있습니다. 포럼 URL 뒤에 /admin/plugins를 붙여도 됩니다. 테마는 Appearance(모양새) 섹션 또는 /admin/config/customize/themes에서 찾을 수 있습니다.
아마도 당신의 포럼에 특화된 설정일 가능성이 높습니다. 지금까지는 같은 문제를 겪는 다른 사람을 본 적이 없으니까요. Discourse 팀이 개발하지 않은 플러그인이 무엇인지, 어떤 테마 구성 요소와 자체적인 수정 사항이 있는지 모르면 추측하기가 어렵습니다.
Discourse 팀이 직접 게시한 플러그인만 활성화되어 있었습니다.
모든 플러그인을 비활성화했지만 오류가 여전히 지속되고 있습니다.
테마로는 “Foundation” 테마를 사용 중이며, 어떤 테마의 미리보기를 확인하더라도 왼쪽에 있는 관리자 사이드바가 항상 없습니다.
컴포넌트는 설치되어 있지 않습니다.
안전 모드에서 제공되는 다양한 옵션을 사용하여 테마 문제인지 플러그인 문제인지 확인해 보셨나요?
방금 테스트해 보았습니다.
“구식 JavaScript 함수가 오류를 발생하도록 설정” 옵션만 활성화해도 "안전 모드"에서 동일한 오류가 발생합니다.
브라우저 콘솔에서 에러를 확인해 보셨나요?
그건 놀랍지 않아요. 플러그인도 테마도 비활성화되어 있잖아요. 하지만 문제가 테마인지 플러그인에서 비롯된 건지는 여전히 알 수 없어요.
테마만 비활성화했을 때 사이드바가 정상적으로 작동하나요?
그렇게 하면 플러그인을 원인으로 의심하는 것을 배제할 수 있을 거예요. 만약 안 되면, 비공식 플러그인을 비활성화하는 방식으로 체계적으로 계속 진행하겠습니다.
그것도 효과가 없다면 3번째 옵션만 사용해야 할 것 같아요.
이런 종류의 문제라면 이 정도면 충분한가요? 아니면 매 라운드마다 재빌드가 필요한가요?
제가 이전에 말씀드린 부분이 바로 이 뜻입니다.
즉, 한 가지로 모든 플러그인을 순서대로 비활성화했는데(이로 인해 오류 증상은 변하지 않았습니다), 다른 한 가지로 위의 세 가지 옵션 중 어떤 것을 비활성화하든 "safe mode"에서 관리자 사이드바가 왼쪽에 표시됩니다.
옵션 “Veraltete Javascript-Funktionen einen Fehler auslösen lassen”(구식 JavaScript 기능이 오류를 발생시킴)를 활성화하면, "safe mode"에서 관리자 사이드바가 왼쪽에 더 이상 표시되지 않습니다.
음. 좀 이상하네요. 둘 중 하나만 해당될 거라고 예상했는데, 플러그인과 테마 간의 상호작용 문제이거나, 아니면 둘 다 해당되지 않는 것 같습니다.
이제 브라우저 콘솔이 정말로 도움이 될 것 같아요.
여기에서 두 가지 오류가 표시됩니다:
좋아요! 여기서 문제가 발생하는 코드 줄을 확인할 수 있습니다.
해당 코드가 이 문제의 해결책인 것 같습니다. Changing the target audience of Enable form templates incorrectly creates an Update Discourse option in the left sidebar - #2 by zogstrip
거기에 나와 있는 오류는 현재 제 상황에서 발생하는 오류와 일치하지 않습니다.
게시글을 통해 정확히 무엇을 수정해야 다시 정상 작동하는지 파악이 되지 않습니다
.
링크된 문제를 해결하기 위해 적용된 변경 사항으로 인해 문제가 발생한 것 같습니다. 여기서 직접 수정할 수 있을지는 확신할 수 없습니다. 이 코드에 대해 더 잘 아는 누군가가 조만간 시간을 내서 확인해 주길 바랍니다.
@Mr.Xurrent 안녕하세요. 로컬 환경에서 재현을 시도해 보고 있지만, 플러그인 설정 방식과 관계없이 재현하지 못했습니다. 팀에서 만든 플러그인만 활성화되어 있다고 하셨는데, 비활성화된 상태의 다른 플러그인이 설치되어 있는지 확인해 주실 수 있을까요?
에러가 발생하는 시점에 콘솔에서 다음 코드를 실행한 후 결과를 여기에 붙여넣어 주시겠어요?
(() => {
const raw = JSON.parse(
JSON.parse(document.querySelector("#data-preloaded").textContent).site
).admin_config_login_routes;
const live = Discourse.__container__
.lookup("service:site")
.admin_config_login_routes;
return {
raw,
rawType: typeof raw,
rawConstructor: raw?.constructor?.name,
rawIsArray: Array.isArray(raw),
live,
liveType: typeof live,
liveConstructor: live?.constructor?.name,
liveIsArray: Array.isArray(live),
liveHasMap: typeof live?.map === "function",
arrayPrototypeHasMap: typeof Array.prototype.map === "function",
};
})()
현재로서는 map을 지원하지 않는 admin_config_login_routes 값이 어떻게 생성되고 있는지 정말로 이해가 가지 않습니다. LOAD_PLUGINS=0으로 서버에서 모든 플러그인을 비활성화하면 빈 배열이 반환됩니다. 그 외 모든 경우에도 값의 배열이 반환됩니다. 이 둘 모두 map과 함께 작동하지만, 배열 외부의 {}나 "oauth2"와 같은 값은 에러를 유발합니다.
@tannerabread 님, 안녕하세요.
네, Discourse 자체에서 게시한 플러그인만 활성화되어 있었으며, 다른 플러그인은 설치되어 있지 않습니다.
말씀하신 텍스트 블록을 브라우저 콘솔에 입력해 보았으나, 아무런 변화가 없었으며, 콘솔에서도 어떠한 피드백도 받지 못했습니다.
“OAuth2” 플러그인은 어느 시점에도 활성화된 적이 없습니다.
명확히 하자면, 해당 코드 블록으로 인해 무언가가 변경될 것이라고 기대하지는 않았습니다 — 하지만 값이 null 또는 undefined일지라도 어떤 형태의 출력은 나올 것이라고 기대했습니다.
그리고 한 가지 더, 앱이 서버를 LOAD_PLUGINS=0으로 시작하여 모든 플러그인을 명시적으로 해제하는 경우를 제외하고는, 플러그인의 활성화/비활성화 여부는 admin_config_login_routes에 포함되는지에 영향을 주지 않아야 합니다.
제가 실행해 달라고 요청한 콘솔 블록은 admin_config_login_routes의 값(또는 누락된 값)을 확인해 보기 위함이었습니다. 그것이 비어 있을 수 없으며, 빈 배열이어도 map 함수에는 문제가 없어야 합니다.
이것들은 대부분 제 추측이며, 이 문제를 해결할 수 있는 방법에 대해 더 생각해 보겠습니다. 공식 Discourse 플러그인만 있다고 하셨지만, 설정 환경을 더 자세히 볼 수 있으면 좋겠습니다.
설치된 플러그인 중 코어 Discourse에 번들로 포함된 기본 플러그인만 있는 것인지, 아니면 Discourse에서 설치한 추가 플러그인도 함께 있는 것인지가 좋은 질문이 될 것 같습니다.