Cela signifie-t-il que lorsque les personnes passent d’une encodage à l’ASCII, les slugs ne sont pas régénérés ? Si c’est le cas, il semble que le processus unique que vous avez écrit pour effacer les slugs ne fonctionnerait pas dans ces cas-là.
Bonjour,
La pull request n’a pas résolu complètement le problème. Si le slug contient un signe +, une erreur 400 est affichée.
Pour confirmer cela, j’ai rétabli le mode de génération de slug sur « Aucun », modifié le titre pour supprimer le signe +, puis rétabli le mode sur « Encodé ». Cela a corrigé l’erreur 400.
Le scénario est le suivant : lorsqu’un titre contient un signe plus, une erreur 400 est renvoyée. (D’autres caractères pourraient également causer ce problème. J’ai uniquement testé le signe +.)
Merci.
Est-ce au niveau de l’identifiant de sujet ou de celui d’une catégorie ?
Un slug de sujet. Pas essayé sur les catégories.
Le générateur d’identifiants encoded supprime tous les signes +, donc je ne vois pas comment vous obtenez cela :
Je viens de tester localement et ils sont bien supprimés de mon côté.
Peut-être que le scénario est différent sur votre machine locale.
La langue de mon site web est le persan. Pouvez-vous passer au persan puis tester ?
Pour reproduire ce problème, créez un sujet avec le titre suivant :
گربه های ایرانی + از نژاد خوبی برخوردار هستند
Mon slug devient illisible et renvoie une erreur 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
Seul vous n’utilisez pas le « og » + mais un autre symbole persan qui lui ressemble ? Pouvez-vous partager une chaîne qui reproduit le problème ?
J’ai modifié ma réponse précédente. Juste pour confirmer qu’il s’agit d’un +.
C’est étrange, pour moi le slug devient
%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
Êtes-vous sûr d’exécuter la dernière version et d’avoir actualisé la page ?
Je exécute la dernière version.
Je suis maintenant confus. J’ai créé un nouveau sujet avec la même condition que le sujet ayant un slug corrompu. Cela fonctionne très bien. Comme vous l’avez indiqué, ce n’est probablement pas le signe + qui cause le problème.
Veuillez me laisser un peu de temps pour installer un environnement de test et effectuer quelques vérifications. Je mettrai à jour ce sujet avec plus d’informations.
Merci.
Avez-vous obtenu cette URL via le bouton de partage ? Il y avait un double encodage, que je viens de corriger dans la dernière fusion.
Regardez cette capture d’écran.
Ah, je vois le problème. Cela ne se produit que pour les identifiants (slugs) dépassant 255 caractères, et seulement dans 66 % des cas. Je travaillerai sur une correction demain.
Ça nous arrive aussi :
par exemple : Γνώμη για αγορά μπουζουκιού μέσω ίντερνετ και εκτίμηση - #2 από nikos_politis - Μουσικά όργανα - Ρεμπέτικο Φόρουμ
Étrangement, cela ne se produit que lorsque vous cliquez sur le sujet depuis la liste « derniers ». Si vous y accédez via un lien depuis un autre sujet, tout fonctionne parfaitement.
Le lien complet :
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
Même chose, ce slug fait plus de 255 caractères.
Lors de mon enquête, j’ai découvert certaines catégories qui ne peuvent pas du tout se charger.
J’ai constaté que nous recevons ce type d’erreurs :
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)
Ces erreurs peuvent-elles être liées ?
(Vous pouvez vérifier par vous-même ici : https://rembetiko.gr/c/άλλα-θέματα/μικρές-αγγελίες)
@Arta_S et @chrispanag, deux corrections supplémentaires arrivent : l’une pour les titres longs et l’autre pour les sous-catégories.
et
Après la mise à niveau, nous obtenons toujours cette erreur ![]()
Dans ce cas, vous devrez régénérer les identifiants d’URL (slugs). Veuillez essayer la commande suivante :
cd /var/discourse
./launcher enter app
rails c
Topic.update_all(slug: nil)
exit
exit
exit
Deux jours après la dernière mise à jour, je rencontre deux problèmes :
1 : Erreur 400 Bad Request sur l’URL de certains sujets
2 : La chronologie a disparu dans certains sujets
Hébergement Discourse « standard-plan »
Pouvez-vous m’aider ?
Désolé, je ne parle pas bien anglais.