Isso significa que, quando as pessoas alternam de codificado para ASCII, os slugs não são regenerados? Se for esse o caso, parece que o processo único que você escreveu para limpar os slugs não funcionaria nesses casos.
Olá,
O pull request não resolveu completamente o problema. Se o slug contiver um sinal de +, será exibido o erro 400.
Para confirmar isso, voltei para “Nenhum” na geração de slug, editei o título, removi o sinal de + do título e voltei para “codificado”; isso corrigiu o erro 400.
O cenário é o seguinte: quando um título inclui um sinal de mais, retorna o erro 400. (Poderiam haver outros caracteres que levariam a isso. Eu testei apenas o sinal de +)
Obrigado.
Isso é em um slug de tópico ou em um slug de categoria?
Um slug de tópico. Não foi testado nas categorias.
O gerador de slug encoded remove todos os sinais de +, então não tenho ideia de como você obteve isso:
Acabei de testar localmente e eles são removidos sem problemas para mim.
Talvez o cenário seja diferente no seu ambiente local.
O idioma do meu site é persa. Você pode alternar para o persa e, em seguida, testar?
Para reproduzir isso, crie um tópico com o seguinte assunto:
gatos iranianos + pertencem a uma boa raça
Minha slug se transforma em um formato ilegível e retorna um erro 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
Apenas você não está usando o ‘+’ ‘og’, mas um símbolo persa diferente que parece com ele? Você pode compartilhar uma string que reproduza o problema?
Editei minha resposta anterior. Só para confirmar, é um +.
Isso é estranho, para mim o slug se transforma em
%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
Tem certeza de que está executando a versão mais recente e atualizou a página?
Estou executando a versão mais recente.
Agora estou confuso. Criei um novo tópico com a mesma condição do tópico com slug corrompido. Funciona perfeitamente. Assim como você mencionou, provavelmente não é o + que está causando o problema.
Por favor, permita-me um tempo para instalar um ambiente de teste e realizar algumas verificações. Atualizarei este tópico com mais informações.
Obrigado
Você obteve essa URL do botão de compartilhamento? Ela estava sendo codificada duas vezes e acabei de corrigir isso na última merge.
Confira este screencast.
Ah, entendi o problema. Isso só ocorre com slugs acima de 255 caracteres e apenas em 66% dos casos. Vou trabalhar em uma correção amanhã.
Acontece conosco também:
Estranhamente, isso só acontece quando você acessa o tópico a partir da lista “mais recentes”. Quando você cria um link para ele a partir de outro tópico, funciona perfeitamente.
O link completo:
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
O mesmo problema: esse slug tem mais de 255 caracteres.
Durante a investigação, descobri algumas categorias que não conseguem carregar de forma alguma.
Percebi que recebemos erros desse tipo:
URIError: URI malformada
at decodeURIComponent (<anônimo>)
at a (https://rembetiko.gr/assets/ember_jquery-7dfac344d893a6c10c016353b994db2c6f42af630322ea6da3399c220fcc50ed.js:16:31208)
at Array.map (<anônimo>)
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: Não é possível ler a propriedade 'responseJSON' de 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)
```\nEsses erros podem estar relacionados?
(você pode verificar por conta própria aqui: https://rembetiko.gr/c/%CE%AC%CE%BB%CE%BB%CE%B1-%CE%B8%CE%AD%CE%BC%CE%B1%CF%84%CE%B1/%CE%BC%CE%B9%CE%BA%CF%81%CE%AD%CF%82-%CE%B1%CE%B3%CE%B3%CE%B5%CE%BB%CE%AF%CE%B5%CF%82)
@Arta_S e @chrispanag, mais duas correções estão a caminho: uma para títulos longos e outra para subcategorias.
e
Após a atualização, ainda recebemos esse erro ![]()
Neste caso, você precisará regenerar os slugs. Por favor, tente:
cd /var/discourse
./launcher enter app
rails c
Topic.update_all(slug: nil)
exit
exit
exit
Dois dias após a última atualização, estou com dois problemas:
1: Erro 400 Bad Request na URL de alguns tópicos
2: A linha do tempo sumiu em alguns tópicos
Hospedagem Discourse ‘standard-plan’
Você pode me ajudar?
Desculpe, não escrevo bem em inglês.