ok для сайтов с добавленными пользовательскими эмодзи, они теперь будут сломаны в чате, так как исправление объединено.
в отличие от стандартных изображений в постах (которые можно исправить с помощью rake posts:rebake), пользовательские эмодзи в чате передаются на фронтенд динамически через /site.json.
если ваша база данных содержит URL-адреса S3, в которых отсутствует протокол (например, //bucket.endpoint...) или используется виртуальный хост, который не полностью соответствует переменным среды в вашем app.yml, внутренний CDN-реплейсер Discourse молча терпит неудачу. сырой URL-адрес бакета передается в браузер, что приводит к поломке пользовательских эмодзи в чате.
как исправить:
чтобы исправить это навсегда, вам нужно принудительно переназначить сырые URL-адреса бакета на URL-адрес вашего CDN в базе данных, а затем очистить кэш сайта, чтобы /site.json перегенерировался.
1. войдите в контейнер:
войдите на свой сервер через ssh и войдите в контейнер Discourse (обычно app или web_only, если у вас двухконтейнерная настройка).
cd /var/discourse
./launcher enter app
2. переназначьте URL-адреса:
запустите встроенный инструмент Discourse remap. вы должны запустить его дважды, чтобы поймать как вариант https://, так и безпротокольный вариант //, который иногда оставляет скрипт миграции.
замените заполнители на ваши фактические URL-адреса сырого бакета и фактический URL-адрес CDN:
# исправьте стандартные URL-адреса https://
discourse remap "https://<your-bucket>.<your-endpoint>.com" "https://cdn.your-domain.com"
# исправьте безпротокольные URL-адреса // (это тот, который обычно ломает пользовательские эмодзи)
discourse remap "//<your-bucket>.<your-endpoint>.com" "https://cdn.your-domain.com"
3. очистите кэш
поскольку /site.json сильно кэшируется, вам необходимо очистить кэш rails, чтобы принудительно заставить форум обслуживать новые URL-адреса:
откройте консоль rails:
rails c
запустите эти команды:
Rails.cache.clear
Site.clear_cache
exit
4. обновите страницу
жестко обновите ваш браузер (и отключите обходное решение темы-компонента, если вы все еще используете его). пользовательские эмодзи в чате теперь должны быть исправлены и правильно загружаться через CDN.