Кнопка «Показать полный пост» не работает при установке в подпапке

Привет, ребята, вижу, что проблема с косой чертой в конце снова дала о себе знать :slight_smile:

[Косые черты в конце] — это, похоже, основная проблема. При использовании встраивания комментариев Discourse на другом сайте через JavaScript вы управляете этим через параметр, исправить это очень просто.

Просто для справки: при встраивании тем в Discourse косые черты в конце удаляются из embed_url; см. TopicEmbed.normalize_url. В результате отдельного случая, связанного с пересечением встраивания через JavaScript и встраивания через WP Discourse, мы унифицировали эту обработку для обоих методов встраивания. См. Apply TopicEmbed url normalisation to embed urls inserted in the PostCreator by angusmcleod · Pull Request #30641 · discourse/discourse · GitHub

@Thiago_Mobilon В ходе этого переезда вы также обновили свой Discourse? Возможно, мы наблюдаем применение унификации нормализации embed_url к встраиванию через WP Discourse здесь из-за обновления вашего Discourse, которое произошло одновременно с переездом на установку в подпапку. Какую версию Discourse вы сейчас используете? (и какую версию вы использовали до переезда, если знаете?)

Кстати, когда я запускаю эти две команды локально на последней версии Discourse, я получаю тот же результат, а именно HTML-тело статьи:

# с косой чертой в конце
TopicEmbed.find_remote("https://tecnoblog.net/noticias/governo-renova-app-da-cnh-para-baratear-obtencao-do-documento/")

# без косой черты в конце
TopicEmbed.find_remote("https://tecnoblog.net/noticias/governo-renova-app-da-cnh-para-baratear-obtencao-do-documento")

# результат одинаковый

Возможно, вы внесли какие-то изменения на стороне WordPress?

** редактирование: А, перечитав эту тему чуть внимательнее, я вижу, что ваша проблема, возможно, связана не с переездом Discourse в подпапку или с косыми чертами в конце, а с миграцией ваших URL-адресов WordPress, то есть:

Например, в этом посте URL-адрес раньше был таким:

https://tecnoblog.net/486925/o-que-e-pirataria-digital/

Теперь он изменился на:

https://tecnoblog.net/responde/o-que-e-pirataria-digital/

Так что, возможно, проблема в том, что у вас в topic_embeds.embed_url хранится старая структура URL-адресов, а FinalDestination по какой-то причине не может разрешить новые URL-адреса (например, не может следовать за перенаправлением).

В этом случае вам либо нужно убедиться, что ваши старые URL-адреса блога перенаправляются на новые, либо вам нужно мигрировать topic_embeds.embed_url. Что касается миграции, обратите внимание, что ваш скрипт неверен, например, topic.custom_fields["embed_url"] — это не то место, где хранится embed_url.

Вот что я бы предложил, если вы хотите пойти по пути миграции (вместо перенаправления старых URL-адресов блога на новые). Сначала подтвердите, что проблема заключается в неверном формате URL-адреса блога в topic_embeds.embed_url, посмотрев на пример, например, TopicEmbed.find_by(topic_id: 157441). Затем, если вы увидите, что проблема действительно в том, что в этом столбце сохранен старый формат URL-адресов, выполните это для обновления всех embed_url старого формата в определенной категории:

category_id = # введите здесь id категории
TopicEmbed.joins(:topic).where(topics: { category_id: category_id  }).find_each do |embed|
   new_url = embed.embed_url.sub(%r{/\d+/}, "/responde/")
   embed.update!(embed_url: new_url) if new_url != embed.embed_url
 end

Обратите внимание, что замена регулярным выражением старого формата на новый (sub(%r{/\d+/}, "/responde/")) — это лишь предположение, основанное на предоставленном вами примере. Вы можете протестировать эффект этого на ваших реальных URL-адресах здесь: https://regex101.com/