Плагин Landing Pages 🛩

Спасибо, Энгус, за быстрый ответ и исправление. Как нам обновить плагин, чтобы получить последнее исправление?

Сейчас я вижу плагин Landing.
На изображении показан элемент интерфейса, позволяющий пользователю добавлять посадочные страницы, чтобы узнать больше о Papolo Cabscourse с текущим рейтингом 0.4. (Подпись сгенерирована ИИ)

Пожалуйста, помогите нам понять, как перейти к обновлению плагина.

1 лайк

Привет, Стив! Если вы используете хостинг-провайдера, обратитесь к нему. Если вы размещаете проект самостоятельно, обновите плагин, перейдя по адресу /admin/update или пересобрав свой экземпляр.

1 лайк

Спасибо, Ангус, так как это самохостинг. Мы пересоберем приложение и сообщим вам о исправлении.

2 лайка

Просто выполнить
./launcher rebuild app
помогло мне! Это исправлено здесь! (<- Пример наших посадочных страниц)

2 лайка

Да… у нас это сработало. Спасибо за решение и быструю реакцию.

2 лайка

Привет,
У меня возникли проблемы с плагином Landing Pages на моём сайте. Плагин не работает как ожидалось. Он вызывает проблемы с макетом и некорректно отображает контент.

Сталкивался ли кто-то ещё с этим? Любые советы или способы решения этой проблемы были бы очень полезны!

Можете поделиться ссылкой на страницу вашего сообщества, где показана эта проблема, и/или некоторыми скриншотами?

Могу ли я найти в этом форуме страницу входа (по заголовку или содержимому)?

1 лайк

Я создаю страницу с помощью плагина для лендингов, и там тоже есть JS. Есть ли какое-то место, куда мне следует поместить JS-файл, или я должен просто разместить его на самой странице этого плагина? Но это ведь не сработает, верно?

Привет! Не могли бы вы отправить файл, который вы пытаетесь добавить?

JS-файлы необходимо разместить в директории assets/javascripts/discourse. Однако конкретная поддиректория внутри неё зависит от самого файла.

Возможно, вам стоит задать этот вопрос в теме плагина, а не создавать отдельную тему.

1 лайк

Я переписал расширение Home Pages для Landing Pages. Это позволяет вам использовать компоненты Ember Glimmer для рендеринга некоторых страниц. Если вы можете упаковать свой JS таким образом, это будет хорошим вариантом.

Смотрите Landing Pages Plugin 🛩 - #95 by merefield

1 лайк

После обновления Discourse лендинг-страница работает некорректно… она не сохраняет заданные стили HTML+CSS. Кто-то сталкивался с похожей проблемой?

Значит ли это, что я могу добавлять собственный JavaScript на страницы?

Если вы упаковываете их как компоненты Ember, то да

Значит, мне нужны и плагин главной страницы, и плагин посадочной страницы для одного и того же?

Да, конечно

Привет, отличный плагин! Мне нравится возможность отображать все опубликованные темы на одной странице для незарегистрированных пользователей. Большое спасибо.

Могу ли я спросить, есть ли на странице приземления формы какая-либо защита от спама или флуда на бэкенде?

Кстати, это отличный проект с открытым исходным кодом:

1 лайк

На недавно обновлённом сайте (в ветке tests-passed) импорт заархивированного HTML-документа, похоже, сейчас не работает. Речь идёт вот об этом:

Та же страница корректно работает при прямой вставке или через репозиторий.

В консоли много сообщений об устаревании, но активных сбоев там нет. Однако в /logs:

image

Полный стек вызовов

Сообщение (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>'

Окружение

HTTP HOSTS: spokes.nz`
1 лайк

Я тоже столкнулся с этой проблемой.

У меня возникает постоянная ошибка с плагином Landing Pages: и импорт через Git, и импорт через ZIP завершаются неудачей молча. В интерфейсе администратора после выполнения pull/импорта отображается зелёное сообщение об успехе, но страницы не создаются и не появляются в выпадающем списке «Выбрать страницу».

Я подтвердил, что проблема не связана с ошибкой конфигурации пользователя. В журнале сервера при запуске импорта появляется следующее парадоксальное сообщение об ошибке:

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 ...

Эта ошибка возникает, несмотря на то, что запрос обрабатывается собственным контроллером плагина.

Выполненные шаги по устранению неполадок:

  • Подтверждено, что репозиторий является публичным, а URL-адрес HTTPS корректен.
  • Проверен синтаксис файла pages.json, а также опробованы как глобальная, так и локальная (на страницу, welcome/page.json) структуры.
  • Создание страницы вручную в интерфейсе администратора работает безупречно. Это доказывает, что ядро плагина функционирует нормально, и проблема изолирована в модуле импорта.
  • Я выполнил полное удаление, пересборку, повторную установку и пересборку официального плагина Pavilion, чтобы обеспечить чистое состояние системы.
  • На сервере увеличено значение client_max_body_size, и приложение было пересобрано.

Ошибка сохраняется после всех этих шагов. Похоже, что проблема кроется глубже и связана с функцией импорта.

1 лайк

Спасибо, BrianC — я на самом деле не тестировал импорт из Git в полной мере.

Отлично, что это так четко сформулировано!