Angus님, 빠른 답변과 수정에 감사드립니다. 플러그인을 업데이트하여 최신 수정 사항을 적용하려면 어떻게 해야 하나요?
현재 Landing 플러그인을 확인하고 있습니다.
![]()
플러그인 업데이트로 이동하는 방법을 알려주시면 감사하겠습니다.
Angus님, 빠른 답변과 수정에 감사드립니다. 플러그인을 업데이트하여 최신 수정 사항을 적용하려면 어떻게 해야 하나요?
현재 Landing 플러그인을 확인하고 있습니다.
![]()
플러그인 업데이트로 이동하는 방법을 알려주시면 감사하겠습니다.
스티브, 호스팅 제공업체를 통해 서비스 중인 경우 해당 업체에 문의해 주세요. 직접 호스팅(self-hosted)을 하고 있다면 /admin/update로 이동하거나 인스턴스를 다시 빌드하여 플러그인을 업데이트해 주세요.
앵거스, 감사합니다. 셀프 호스팅 환경이므로 앱을 재구축하고 수정 사항에 대해 알려드리겠습니다.
저한테는 그냥
./launcher rebuild app
만 실행했을 뿐인데 효과가 있었어요! 여기서 수정되었습니다. (<- 랜딩 페이지 예시)
네, 우리 회사에서는 잘 작동했습니다. 해결책과 빠른 응대에 감사드립니다.
안녕하세요,
제 사이트에서 랜딩 페이지 플러그인에 문제가 생겼습니다. 플러그인이 의도대로 작동하지 않고 있습니다. 레이아웃이 깨지고 콘텐츠가 제대로 표시되지 않습니다.
혹시 비슷한 경험을 하신 분이 계신가요? 이 문제를 해결할 수 있는 팁이나 방법이 있다면 정말 감사하겠습니다!
커뮤니티에서 이 문제를 보여 주는 페이지 링크와/또는 스크린샷을 공유해 주시겠어요?
그 포럼에서 랜딩페이지(제목 또는 콘텐츠)를 검색할 수 있을까요?
랜딩 페이지 플러그인을 사용하여 페이지를 만들고 있는데, JS도 함께 사용해야 합니다. JS 파일을 어디에 배치해야 하는지, 아니면 해당 플러그인 페이지 안에 그대로 두어야 하는지 궁금합니다. 하지만 그렇게 하면 작동하지 않나요?
안녕하세요, 추가하려고 하는 파일을 보내 주실 수 있을까요?
JS 파일은 assets/javascripts/discourse 디렉토리에 배치해야 합니다. 하지만 해당 디렉토리 내에서 정확히 어떤 하위 디렉토리에 배치할지는 파일에 따라 달라집니다.
이 질문은 별도의 주제 대신 플러그인 주제 내에서 하시는 것이 더 적절할 수 있습니다.
Landing Pages에 Home Pages 확장 기능을 작성했습니다. 이를 통해 일부 페이지를 Ember Glimmer 컴포넌트로 렌더링할 수 있습니다. JS를 이 방식으로 패키징할 수 있다면 선택지가 됩니다.
Discourse 업데이트 후 랜딩 페이지가 올바르게 작동하지 않습니다… 정의된 HTML+CSS 스타일이 유지되지 않습니다. 비슷한 문제를 겪고 계신 분 계신가요?
그럼 페이지에 사용자 정의 JS를 추가할 수 있다는 뜻인가요?
Ember 컴포넌트로 패키징하는 경우, 네요
그러니까 홈 페이지와 랜딩 페이지 플러그인을 둘 다 사용해야 하나요?
그렇습니다
안녕하세요, 정말 훌륭한 플러그인입니다. 로그인하지 않은 사용자를 위해 모든 게시된 주제를 1페이지에 나열할 수 있는 기능이 정말 마음에 듭니다. 감사합니다.
혹시 폼 랜딩 페이지에 백엔드에서 스팸/퍼플링을 방지하는 보호 기능이 있는지 여쭤봐도 될까요?
참고로, 이것은 멋진 FOSS 프로젝트입니다:
신규 업데이트가 적용된 사이트(tests-passed)에서 압축된 HTML 문서의 가져오기(Import) 기능이 현재 깨져 있는 것 같습니다. 말씀드리는 내용은 이겁니다:
같은 페이지를 직접 붙여넣기하거나 저장소를 통해 가져오면 정상적으로 동작합니다.
콘솔에는 여러 비추천(deprecation) 경고가 표시되지만, 그 자체로는 실제로 깨진 부분은 없습니다. 그러나 /logs에는 다음과 같은 내용이 있습니다:
메시지 (6회 보고됨)
필수 플러그인 'landing_pages’를 찾을 수 없음
백트레이스
activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:130:in `block in warn'
activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:231:in `block in dispatch'
activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:231:in `each'
activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:231:in `dispatch'
activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:130:in `warn'
/var/www/discourse/app/controllers/application_controller.rb:363:in `block in requires_plugin'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:406:in `instance_exec'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:406:in `block in make_lambda'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:178:in `block in call'
actionpack-8.0.2.1/lib/abstract_controller/callbacks.rb:34:in `block (2 levels) in <module:Callbacks>'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:179:in `call'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:559:in `block in invoke_before'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:559:in `each'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:559:in `invoke_before'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/var/www/discourse/app/controllers/application_controller.rb:429:in `block in with_resolved_locale'
i18n-1.14.7/lib/i18n.rb:353:in `with_locale'
/var/www/discourse/app/controllers/application_controller.rb:429:in `with_resolved_locale'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:129:in `block in run_callbacks'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:140:in `run_callbacks'
actionpack-8.0.2.1/lib/abstract_controller/callbacks.rb:260:in `process_action'
actionpack-8.0.2.1/lib/action_controller/metal/rescue.rb:27:in `process_action'
actionpack-8.0.2.1/lib/action_controller/metal/instrumentation.rb:76:in `block in process_action'
activesupport-8.0.2.1/lib/active_support/notifications.rb:210:in `block in instrument'
activesupport-8.0.2.1/lib/active_support/notifications/instrumenter.rb:58:in `instrument'
activesupport-8.0.2.1/lib/active_support/notifications.rb:210:in `instrument'
actionpack-8.0.2.1/lib/action_controller/metal/instrumentation.rb:75:in `process_action'
actionpack-8.0.2.1/lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord-8.0.2.1/lib/active_record/railties/controller_runtime.rb:39:in `process_action'
actionpack-8.0.2.1/lib/abstract_controller/base.rb:163:in `process'
actionview-8.0.2.1/lib/action_view/rendering.rb:40:in `process'
rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in `block in profile_method'
actionpack-8.0.2.1/lib/action_controller/metal.rb:252:in `dispatch'
actionpack-8.0.2.1/lib/action_controller/metal.rb:335:in `dispatch'
actionpack-8.0.2.1/lib/action_dispatch/routing/route_set.rb:67:in `dispatch'
actionpack-8.0.2.1/lib/action_dispatch/routing/route_set.rb:50:in `serve'
actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:32:in `block in <class:Constraints>'
actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:62:in `serve'
actionpack-8.0.2.1/lib/action_dispatch/journey/router.rb:53:in `block in serve'
actionpack-8.0.2.1/lib/action_dispatch/journey/router.rb:133:in `block in find_routes'
actionpack-8.0.2.1/lib/action_dispatch/journey/router.rb:126:in `each'
actionpack-8.0.2.1/lib/action_dispatch/journey/router.rb:126:in `find_routes'
actionpack-8.0.2.1/lib/action_dispatch/journey/router.rb:34:in `serve'
actionpack-8.0.2.1/lib/action_dispatch/routing/route_set.rb:908:in `call'
railties-8.0.2.1/lib/rails/engine.rb:535:in `call'
railties-8.0.2.1/lib/rails/railtie.rb:226:in `public_send'
railties-8.0.2.1/lib/rails/railtie.rb:226:in `method_missing'
actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:33:in `block in <class:Constraints>'
actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:62:in `serve'
actionpack-8.0.2.1/lib/action_dispatch/journey/router.rb:53:in `block in serve'
actionpack-8.0.2.1/lib/action_dispatch/journey/router.rb:133:in `block in find_routes'
actionpack-8.0.2.1/lib/action_dispatch/journey/router.rb:126:in `each'
actionpack-8.0.2.1/lib/action_dispatch/journey/router.rb:126:in `find_routes'
actionpack-8.0.2.1/lib/action_dispatch/journey/router.rb:34:in `serve'
actionpack-8.0.2.1/lib/action_dispatch/routing/route_set.rb:908:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
/var/www/discourse/lib/middleware/crawler_hooks.rb:11:in `call'
rack-2.2.17/lib/rack/tempfile_reaper.rb:15:in `call'
rack-2.2.17/lib/rack/conditional_get.rb:40:in `call'
rack-2.2.17/lib/rack/head.rb:12:in `call'
actionpack-8.0.2.1/lib/action_dispatch/http/permissions_policy.rb:38:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:415:in `call'
/var/www/discourse/lib/middleware/csp_script_nonce_injector.rb:12:in `call'
/var/www/discourse/config/initializers/008-rack-cors.rb:14:in `call'
rack-2.2.17/lib/rack/session/abstract/id.rb:266:in `context'
rack-2.2.17/lib/rack/session/abstract/id.rb:260:in `call'
actionpack-8.0.2.1/lib/action_dispatch/middleware/cookies.rb:706:in `call'
actionpack-8.0.2.1/lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:100:in `run_callbacks'
actionpack-8.0.2.1/lib/action_dispatch/middleware/callbacks.rb:30:in `call'
actionpack-8.0.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'
actionpack-8.0.2.1/lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'
logster-2.20.1/lib/logster/middleware/reporter.rb:40:in `call'
/var/www/discourse/lib/middleware/default_headers.rb:13:in `call'
railties-8.0.2.1/lib/rails/rack/logger.rb:41:in `call_app'
railties-8.0.2.1/lib/rails/rack/logger.rb:29:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:20:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call'
actionpack-8.0.2.1/lib/action_dispatch/middleware/request_id.rb:34:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:23:in `call'
rack-2.2.17/lib/rack/method_override.rb:24:in `call'
actionpack-8.0.2.1/lib/action_dispatch/middleware/executor.rb:16:in `call'
rack-2.2.17/lib/rack/sendfile.rb:110:in `call'
rack-mini-profiler-4.0.1/lib/mini_profiler.rb:191:in `call'
/var/www/discourse/lib/middleware/processing_request.rb:12:in `call'
message_bus-4.4.1/lib/message_bus/rack/middleware.rb:60:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:410:in `call'
actionpack-8.0.2.1/lib/action_dispatch/middleware/remote_ip.rb:96:in `call'
railties-8.0.2.1/lib/rails/engine.rb:535:in `call'
railties-8.0.2.1/lib/rails/railtie.rb:226:in `public_send'
railties-8.0.2.1/lib/rails/railtie.rb:226:in `method_missing'
rack-2.2.17/lib/rack/urlmap.rb:74:in `block in call'
rack-2.2.17/lib/rack/urlmap.rb:58:in `each'
rack-2.2.17/lib/rack/urlmap.rb:58:in `call'
unicorn-6.1.0/lib/unicorn/http_server.rb:634:in `process_client'
unicorn-6.1.0/lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn-6.1.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>'
Env
HTTP HOSTS: spokes.nz`
저도 이 문제를 발견했습니다.
Landing Pages 플러그인에서 Git 및 ZIP 가져오기가 조용히 실패하는 지속적 문제를 겪고 있습니다. 관리 UI에서는 pull/import 후 녹색 성공 메시지가 표시되지만, 실제 페이지가 생성되지 않거나 “Select page” 드롭다운 메뉴에 나타나지 않습니다.
이 문제가 사용자 설정 오류 때문이 아님을 확인했습니다. 가져오기를 트리거할 때 서버 로그에 다음과 같이 모순된 오류 메시지가 표시됩니다:
Started GET "/landing/remote/pages" for ... Processing by LandingPages::RemotesController#import as JSON Required plugin 'landing_pages' not found Required plugin 'landing_pages' not found Completed 200 OK in ...
요청이 플러그인 자체의 컨트롤러에 의해 처리되고 있음에도 불구하고 이 오류가 발생합니다.
수행한 문제 해결 단계:
pages.json 구문을 검증하고 전역 및 페이지별(welcome/page.json) 구조를 모두 시도했습니다.client_max_body_size를 증가시키고 앱을 재빌드했습니다.이 모든 단계 이후에도 오류가 지속됩니다. 가져오기 기능의 더 근본적인 문제로 보입니다.
BrianC 감사합니다 - 사실 Git 가져오기를 완전히 테스트하지 않았습니다.
이렇게 명확하게 정리해 주셔서 감사합니다!