Тема с японским в URL не перенаправляет, если URL не совпадает точно

Значит ли это, что при переключении людей с кодированного формата на ASCII сгенерированные слайги не обновляются? Если так, то кажется, что ваш однократный процесс очистки слайгов не сработает в таких случаях.

1 лайк

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

Внесённые изменения не полностью устранили проблему. Если слаг содержит знак «+», возникает ошибка 400.
Чтобы это подтвердить, я временно переключил генерацию слага обратно на «None», изменил заголовок, удалил знак «+» из заголовка, а затем снова переключил режим на «encoded». После этого ошибка 400 исчезла.

Сценарий следующий: если заголовок содержит знак плюс, возвращается ошибка 400. (Возможно, существуют и другие символы, которые могут вызывать эту проблему; я проверял только знак «+».)

Спасибо.

5 лайков

Это касается слага темы или слага категории?

4 лайка

Слаг темы. На категориях не проверял.

3 лайка

Генератор слаг encoded удаляет все знаки +, поэтому я не понимаю, как у вас это получается:

Только что проверил локально — они удаляются у меня без проблем.

3 лайка

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

Чтобы воспроизвести проблему, создайте тему со следующей темой:
گربه های ایرانی + از نژاد خوبی برخوردار هستند

Мой slug превращается в нечитаемый формат и возвращает ошибку 400:

https://domain.ltd/t/%D8%A7%DA%A9%D8%A7%D9%86%D8%AA-%D9%BE%D8%B1%D9%85%DB%8C%D9%88%D9%85-%D9%88%D8%A8-%D8%B3%D8%A7%DB%8C%D8%AA-%D9%85%D9%88%D8%B2-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D8%A7%D8%B4%D8%AA%D8%B1%D8%A7%DA%A9-%D8%B4%D8%AE%D8%B5%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%DA%A/2067/40

2 лайка

Используется ли вами не символ «og» +, а другой персидский символ, который на него похож? Можете ли вы предоставить строку, воспроизводящую проблему?

3 лайка

Я отредактировал свой предыдущий ответ. Просто для подтверждения: это знак «+».

2 лайка

Это странно, у меня слаг преобразуется в

%DA%AF%D8%B1%D8%A8%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86%DB%8C-%D8%A7%D8%B2-%D9%86%DA%98%D8%A7%D8%AF-%D8%AE%D9%88%D8%A8%DB%8C-%D8%A8%D8%B1%D8%AE%D9%88%D8%B1%D8%AF%D8%A7%D8%B1-%D9%87%D8%B3%D8%AA%D9%86%D8%AF

Вы уверены, что используете последнюю версию и обновили страницу?

2 лайка

Я использую последнюю версию.

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

Пожалуйста, дайте мне немного времени, чтобы установить тестовую версию и провести несколько испытаний. Я обновлю эту тему дополнительной информацией.

Спасибо

2 лайка

Вы получили этот URL из кнопки «Поделиться»? Происходило двойное кодирование, и я только что исправил это в последнем слиянии.

2 лайка

Посмотрите этот скринкаст.

3 лайка

А, я понял проблему. Это происходит только с слагами длиной более 255 символов и лишь в 66% случаев. Я займусь исправлением завтра.

12 лайков

У нас тоже такое бывает:

например: Γνώμη για αγορά μπουζουκιού μέσω ίντερνετ και εκτίμηση - #2 από nikos_politis - Μουσικά όργανα - Ρεμπέτικο Φόρουμ

Странно, но это происходит только при переходе к теме из списка «Последние». Если же вы ссылаетесь на неё из другой темы, всё работает нормально.

Полная ссылка:
https://rembetiko.gr/t/%CE%B3%CE%BD%CF%89%CE%BC%CE%B7-%CE%B3%CE%B9%CE%B1-%CE%B1%CE%B3%CE%BF%CF%81%CE%B1-%CE%BC%CF%80%CE%BF%CF%85%CE%B6%CE%BF%CF%85%CE%BA%CE%B9%CE%BF%CF%85-%CE%BC%CE%B5%CF%83%CF%89-%CE%B9%CE%BD%CF%84%CE%B5%CF%81%CE%BD%CE%B5%CF%84-%CE%BA%CE%B1%CE%B9-%CE%B5%CE%BA%C/38511/2

То же самое, этот слаг превышает 255 символов.

4 лайка

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

Я заметил, что возникают подобные ошибки:

URIError: URI malformed
    at decodeURIComponent (<anonymous>)
    at a (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:16:31208)
    at Array.map (<anonymous>)
    at o (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:16:31136)
    at P.recognize (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:5729)
    at t.applyToState (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:22054)
    at u.n.getTransitionByIntent (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:24304)
    at u.n.transitionByIntent (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:23609)
    at u.n.doTransition (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:25611)
    at u.n.transitionTo (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:30132)
TypeError: Cannot read property 'responseJSON' of undefined
    at n.error (https://rembetiko.gr/assets/application-5d69c42124908eb6b41549efae9db9b1df26741f3a45075c6bfd603bb5267a42.js:71:604)
    at n.C (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:8:17733)
    at u.c.triggerEvent (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:8:21275)
    at e.t.trigger (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:13392)
    at u.c.transitionDidError (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:8:21548)
    at https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:17:11836
    at f (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:18:1126)
    at T (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:18:2503)
    at E (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:18:2402)
    at y (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:18:1896)

Могут ли эти ошибки быть связаны?

(Вы можете проверить это самостоятельно здесь: https://rembetiko.gr/c/άλλα-θέματα/μικρές-αγγελίες)

2 лайка

@Arta_S и @chrispanag, вот ещё два исправления: одно для длинных заголовков, другое для подкатегорий.

и

8 лайков

После обновления мы всё ещё получаем эту ошибку :confused:

2 лайка

В этом случае вам потребуется пересоздать слаг-адреса. Попробуйте выполнить следующие команды:

cd /var/discourse
./launcher enter app
rails c
Topic.update_all(slug: nil)
exit
exit
exit
6 лайков

Два дня назад после последнего обновления у меня возникли две проблемы:

1: Ошибка 400 (Bad Request) в URL некоторых тем
2: Пропала временная шкала в некоторых темах

Хостинг Discourse: «standard-plan»

Можете помочь?

Извините, я плохо владею английским.

2 лайка