Tópico com japonês na URL não redireciona se a URL não corresponder perfeitamente

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.

1 curtida

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.

5 curtidas

Isso é em um slug de tópico ou em um slug de categoria?

4 curtidas

Um slug de tópico. Não foi testado nas categorias.

3 curtidas

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.

3 curtidas

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

2 curtidas

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?

3 curtidas

Editei minha resposta anterior. Só para confirmar, é um +.

2 curtidas

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?

2 curtidas

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

2 curtidas

Você obteve essa URL do botão de compartilhamento? Ela estava sendo codificada duas vezes e acabei de corrigir isso na última merge.

2 curtidas

Confira este screencast.

3 curtidas

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ã.

12 curtidas

Acontece conosco também:

ex: Γνώμη για αγορά μπουζουκιού μέσω ίντερνετ και εκτίμηση - #2 από nikos_politis - Μουσικά όργανα - Ρεμπέτικο Φόρουμ

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.

4 curtidas

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)
2 curtidas

@Arta_S e @chrispanag, mais duas correções estão a caminho: uma para títulos longos e outra para subcategorias.

e

8 curtidas

Após a atualização, ainda recebemos esse erro :confused:

2 curtidas

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
6 curtidas

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.

2 curtidas