Попытка доступа к /tags вызывает ошибку из-за конфликта ключевого слова

Когда я пытаюсь перейти по адресу https://discourse.threejs.org/tags, возникает ошибка:

Однако теги включены и работают, и я могу без проблем переходить на отдельные страницы тегов, например https://discourse.threejs.org/tag/geometry.

Не знает ли кто-нибудь, в чём здесь дело? Не отключил ли я случайно страницу со всеми тегами?

2 лайка

Стоит ли обратить внимание на какие-либо дополнения или плагины?

На странице тегов (в браузере) у вас много ошибок.

TypeError: o.setProperties is not a function...

Ошибка при обработке маршрута: tags.index o.setProperties is not a function TypeError: o.setProperties is not a function

Проблема сохраняется и в режиме safe-mode.

Я обновил свой экземпляр минуту назад, и ошибок больше нет. Возможно, какие-то расширения (плагины) мешают работе?

1 лайк

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

Я также установил несколько тем и пару компонентов:

Однако я попытался отключить компоненты и обновить темы, но это ничего не изменило.

Привет, @looeee

Извините, что слышу о вашей проблеме.

Я зашел на ваш сайт и быстро посмотрел для вас. В консоли обнаружил множество ошибок JavaScript, но не смог связать ошибку консоли с конкретной строкой в коде Ember / JS.

Чтобы подтвердить, что проблема связана с JavaScript (что довольно просто сделать), я проверил ваш сайт (страницу тегов) с настроенным пользовательским агентом GoogleBot и смог получить доступ к странице:

Это скорее «выстрел наугад», «просто чтобы посмотреть», но это может привести вас к каким-то подсказкам.

Попробуйте временно «отключить теги» в настройках панели администратора:

Screen Shot 2020-08-15 at 5.28.30 PM

Затем перейдите на страницу тегов, как обычно, и обновите её. Вы должны увидеть стандартную ошибку 404 Discourse:

  • Упс! Страница не существует или является приватной.

Если после отключения тегов тем вы не увидите сообщение «Упс! Страница не существует или является приватной», это будет интересным сюрпризом; но, полагаю, вы его увидите.

Затем вернитесь в настройки администратора, снова включите теги тем и ещё раз обновите страницу тегов.

Я предполагаю, что вы всё ещё увидите сообщение «Что-то пошло не так», но отключить и снова включить это несложно, и, возможно, появится что-то новое или интересное, что может стать подсказкой.

Надеюсь, это поможет.

1 лайк

Привет @looeee,

Вы столкнулись с редкой проблемой из-за одного из ваших тегов constructor и некоторого JS-кода.

Я исправлю это в понедельник. Если ситуация для вас критична, вы можете переименовать тег constructor во что-то другое или удалить его. Ссылка /tags/constructor должна быть доступна.


Если говорить подробнее и более технически: в каком-то месте кода мы делаем что-то вроде:

const obj = {};
obj['constructor']

Вместо того чтобы вернуть undefined, это фактически возвращает метод конструктора объекта Object.prototype.constructor - JavaScript | MDN, что, очевидно, не ожидалось нашим кодом :sweat_smile:

6 лайков

Ой! Ха-ха, не могу сказать, что я раньше не делал подобного. Спасибо, что разобрались в этом за меня.

Кажется, в любом случае было написано «constructor» с ошибкой — должно было быть «construction». Это было только в одном посте, поэтому я его удалил, и, как и ожидалось, страница /tags снова работает.

Спасибо за быструю помощь, очень ценю :slight_smile:

РЕДАКТИРОВАНИЕ: теперь, когда я снова могу получать доступ к тегам, я хочу их привести в порядок и объединить. Однако это напоминает мне, почему я никогда этого не делаю. Как только я редактирую теги в посте, даже в том, который был создан несколько лет назад, он возвращается наверх списка. Если я массово редактирую много тегов сразу, что я хочу делать каждые несколько месяцев, это полностью нарушает все активные обсуждения, так как они оказываются похороненными под перемеченными постами.

Есть ли способ, чтобы я, как администратор сайта, мог редактировать теги или иным образом изменять пост, не влияя на его место в списке?

2 лайка