Админ недоступен из-за авто-минификации Cloudflare

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

Я пытался создать плагин для Discourse, следуя этой странице: Developing Discourse Plugins - Part 1 - Create a basic plugin, и загрузил папку с плагинами на сервер. После этого я не смог получить доступ к административной панели Discourse.

При проверке консоли браузера я увидел следующую ошибку:
Ошибка: Маршрут с именем admin не найден

Я проверил через SSH роль моего пользователя — у меня есть права администратора. Я также пробовал удалять папки с плагинами из Discourse, но проблема сохраняется.

Не могли бы вы помочь мне решить эту проблему?

Заранее спасибо!

Вы пытаетесь стать администратором в вашей среде разработки или в производственной среде?

Если это производственная среда, то вы можете выполнить:

cd /var/discourse
./launcher enter app
rake admin:create

Для среды разработки вы должны иметь возможность выполнить ./bin/rake admin:create из директории Discourse.

Наличие прав администратора/root в операционной системе вашего сервера и в Discourse — это две совершенно разные вещи.

Я попытался изменить доступ с помощью команды ./launcher enter app, но у меня это не сработало.
Ой, я имел в виду, что у меня есть права администратора в Discourse.

Вы имеете в виду, что вы загрузили плагин напрямую на свой сервер?

Discourse должен сначала скомпилировать JavaScript-активы плагина. Вам следует загрузить плагин в репозиторий GitHub, отредактировать файл app.yml, чтобы добавить его, а затем выполнить команду ./launcher rebuild app.

Прямая загрузка плагина в папку плагинов без компиляции приведёт к тому, что фронтенд Discourse не найдёт скомпилированный файл и возникнут ошибки.

Также, если на вашем сервере включён Cloudflare, не забудьте отключить автоматическую минификацию и очистить кэш.

Привет @Lhc_fl,

Огромное спасибо за помощь. У меня всё заработало после отключения авто-минификации в Cloudflare.

Так как я новичок в Discourse, я мало знаю о работе с плагинами. Сначала я пытался добавить плагин в папку plugins, но затем попробовал ваш совет: загрузить плагин на GitHub и подтянуть его оттуда. Это сработало.

Могу я задать ещё один вопрос? Не могли бы вы подсказать, как добавить пользовательские или дополнительные поля к теме? На самом деле я хочу создать плагин, который расширит функциональность тем. Мне нужно добавить кастомные поля для темы, сохранить их данные в базе данных и отобразить их на странице деталей темы.

Ещё раз спасибо!

Для этого вам стоит начать новую тему, а сам вопрос слишком обширен для конкретного ответа. Однако вам стоит ознакомиться с Разработка плагинов для Discourse — Часть 1 — Создание базового плагина и последующими материалами. Вам нужно поискать информацию о создании topic_custom_fields и их добавлении в сериализатор. Посетите GitHub - discourse/all-the-plugins · GitHub, чтобы получить доступ ко всем плагинам, а затем поищите там примеры.

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