안녕하세요,
다음 페이지를 참고하여 Discourse 플러그인을 생성하려고 했습니다: Developing Discourse Plugins - Part 1 - Create a basic plugin
서버에 plugins 폴더를 업로드한 후, Discourse의 관리자 페이지에 접근할 수 없게 되었습니다.
브라우저 콘솔을 확인해 보니 다음과 같은 오류가 표시됩니다:
Error: There is no route named admin
SSH로 접속하여 제 사용자의 역할을 확인해 보니 관리자 권한이 있습니다. 또한 Discourse에서 plugins 폴더를 삭제해 보았지만 동일한 문제가 발생하고 있습니다.
이 문제에 대해 도움을 주실 수 있을까요?
미리 감사드립니다!
pfaffman
(Jay Pfaffman)
7월 9, 2024, 2:53오후
2
개발 환경에서 관리자 권한을 얻으려는 건가요, 아니면 프로덕션 환경에서인가요?
프로덕션 환경이라면 다음을 실행할 수 있습니다.
cd /var/discourse
./launcher enter app
rake admin:create
개발 환경이라면 discourse 디렉터리에서 ./bin/rake admin:create를 실행하면 됩니다.
서버 OS에서 관리자/루트 권한을 가진 것과 Discourse에서 관리자 권한을 가진 것은 완전히 다른 개념입니다.
이 명령어 ./launcher enter app를 사용하여 액세스 권한을 변경해 보았지만, 내 경우에는 작동하지 않았습니다.
아, 디스코스에서 관리자 권한이 있다는 뜻이었어요.
Lhc_fl
(Linca)
7월 10, 2024, 10:16오전
4
서버에 플러그인을 직접 업로드했다는 뜻인가요?
Discourse는 먼저 플러그인의 JavaScript 자산을 컴파일해야 합니다. 플러그인을 GitHub 저장소에 업로드하고, app.yml을 편집하여 플러그인을 추가한 다음 ./launcher rebuild app을 실행해야 합니다.
컴파일 없이 플러그인을 플러그인 폴더에 직접 업로드하면 Discourse 프론트엔드에서 컴파일된 파일을 찾지 못해 오류가 발생합니다.
또한 서버에 Cloudflare이 활성화되어 있다면, 자동 축소(auto-minify)를 끄고 캐시를 삭제하는 것을 잊지 마세요.
Please also make sure that Cloudflare’s “auto minify” feature is disabled, and that you have purged the cache.
They’ve deprecated the feature because it does not work for modern JS features (which Discourse is now using)
@Lhc_fl 님, 안녕하세요.
도와주셔서 정말 감사합니다. Cloudflare의 자동 미나이파이(auto-minify)를 끄니 저에게는 잘 작동했습니다.
저는 Discourse를 처음 사용하는 관계로 플러그인 사용법에 대해 잘 알지 못합니다. 그래서 플러그인 폴더에 플러그인을 추가하려 했으나, 님이 제안하신 방법대로 플러그인을 GitHub에 업로드하고 GitHub 저장소에서 가져오는 방식으로 진행하니 잘 작동했습니다.
한 가지 더 여쭤봐도 될까요? 주제(topic)에 사용자 정의 필드나 추가 필드를 추가하는 방법을 안내해 주실 수 있을까요? 실제로는 주제 기능을 강화하는 플러그인을 만들고 싶습니다. 주제에 사용자 정의 필드를 추가하고, 해당 데이터를 데이터베이스에 저장한 뒤 주제 상세 페이지에 렌더링하는 것이 목표입니다.
다시 한번 감사드립니다!
pfaffman
(Jay Pfaffman)
7월 10, 2024, 2:34오후
6
이 부분은 새로운 토픽을 시작하는 것이 좋으며, 질문 자체가 너무 광범위하여 구체적인 답변을 드리기 어렵습니다. 하지만 Developing Discourse Plugins - Part 1 - Create a basic plugin 과 나머지 문서를 참고해 보시기 바랍니다. topic_custom_fields 생성 및 시리얼라이저에 추가하는 방법에 대한 내용을 검색해야 할 것입니다. 모든 플러그인을 확인하려면 GitHub - discourse/all-the-plugins · GitHub 를 방문한 후, 해당 저장소에서 예시를 검색해 보실 수 있습니다.
커스텀 필드가 필요한 작업의 내용을 좀 더 자세히 알려주시면, 커스텀 필드나 플러그인 없이도 해당 작업을 수행할 수 있는 다른 방법이 있을 수 있습니다.