Ошибка Handlebars для 2.9.0.beta2 с коннектором above-site-header.hbs

Здравствуйте,

У нас есть два приложения Discourse. Мы обновили оба до версии 2.9.0beta2. На первом обновление прошло без проблем, а на втором возникла ошибка в консоли: Uncaught ReferenceError: Handlebars is not defined.

Единственное различие между этими приложениями заключается в использовании разных пользовательских тем. Похоже, что в неработающем приложении используется коннектор above-site-header.hbs, тогда как в другом его нет. Ошибка JS, по-видимому, указывала на файл above-site-header.hbs. Возможно, этот файл загружается раньше, чем Handlebars в версии 2.9.0beta2? Я вернулся к стабильной версии (2.8.1), и там всё работает корректно в обоих приложениях. Есть какие-то идеи?

Если бы вы могли предоставить URL сломанной темы и/или сломанного сайта, у людей был бы больше шансов понять, в чём проблема. (Или, возможно, и то, и другое скрыто и/или защищено паролем.)

Боюсь, что и сайт, и тема являются приватными. Сайт теперь исправлен. Изменение версии в файле app.yml на stable вместо оставления значения по умолчанию tests-passed указывает на то, что проблема именно в этой бета-версии. Файл, вызывающий ошибку, находится по адресу:

connectors/above-site-header/jc-header.hbs (Я ошибочно указал в заголовке, что он находится в above-site-header.hbs. Это моя вина)

Готов выполнить некоторые проверки, если это поможет, но, к сожалению, не могу поделиться сайтом или темой!

С уважением,
Куинн Коике

В таком случае я бы предложил вам сделать копию темы и удалять элементы небольшими шагами, пока ошибка не исчезнет. Тогда причиной ошибки будет последний удалённый вами элемент.

Если вы сможете предоставить код из файла 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 система снова начала работать корректно, и ошибок в консоли браузера больше не было.

С уважением,
Андреас.

Привет! У меня тоже только что возникла эта проблема! Мой сайт общедоступный, так что если хотите посмотреть, вот он: 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. Мы выполнили yarn install для Handlebars и явно подключили его в плагине, после чего всё снова заработало. Не совсем понятно, почему теперь нужно явно подключать его, хотя раньше это не требовалось, но для меня это решение сработало.

@HisashiQ Можете поделиться кодом для кастомного плагина? Вам точно не нужно вручную устанавливать Handlebars. Проблемы в теме выше были связаны с порядком загрузки JS, а не с зависимостями yarn.