En community.wanikani.com, abrir cualquier enlace a temas con caracteres japoneses en la URL completamente cualificada dejó de funcionar al abrirlos en una nueva pestaña o al copiar y pegar el enlace directamente. Hacer clic en el enlace para navegar dentro de la misma pestaña sigue funcionando.
Por ejemplo, abrir este enlace en una nueva pestaña debería redirigir a
Si el enlace coincide exactamente, funciona correctamente. Pero, por supuesto, con los cambios de nombre de los temas esto a menudo no es así.
También intenté reproducirlo en try.discourse.org, pero en esa instalación los caracteres japoneses nunca se agregan a la URL, incluso cuando están incluidos en el título del tema. No estoy seguro de por qué ocurre eso, pero sin que esto suceda no puedo demostrar el error allí.
suspiro Parece que podría ser otro error de Chrome. Para mí funciona bien tanto en Firefox como en Edge. Curiosamente, funciona la primera vez en una ventana de incógnito, pero falla la segunda vez. Lo mismo ocurre después de borrar la caché y las cookies del sitio y reiniciar mi computadora.
Chrome indica que el error es demasiadas redirecciones.
¿Te importaría comprobarlo en Chrome para confirmar si es un problema general allí y no solo un problema mío? Solo asegúrate de intentar abrir la página varias veces, ya que la primera parece funcionar bien. ¡Agradezco mucho tu ayuda!
¿Todavía estás usando Chrome? Solo quiero asegurarme antes de reportarlo a ellos. Supongo que nada relacionado con esto ha cambiado recientemente en Discourse, ¿verdad? (De todos modos, esto probablemente seguiría siendo un problema de Chrome, ya que solo ocurre allí, incluso si algo hubiera cambiado en Discourse.)
Bueno, olvidé eso. Volvió a ocurrir hoy. No tengo idea de cómo se solucionó por un tiempo.
Dado que esto podría tardar un poco, estaría abierto a soluciones alternativas por ahora. Mencioné en el mensaje original que en Try (y también verifiqué aquí en Meta) los caracteres japoneses nunca se agregan a la URL, lo que efectivamente evita este problema. ¿Es eso una configuración del sitio o de la categoría de la que puedo hablar con mi administrador del sitio? ¿Alguna otra sugerencia para una solución alternativa aparte de esa?
Este error no existía antes de las últimas actualizaciones (la última vez que intenté compartir un enlace fue hace unas dos semanas y funcionaba perfectamente).
He revisado nuestro código y parece que el error es bastante sencillo, pero me gustaría verificar mis suposiciones.
Tenemos una configuración del sitio llamada slug_generation_method que debe cambiarse del valor predeterminado ascii a encoded para activar este error. Cuando cambias esta configuración del sitio, eliminamos todos los slugs y los generamos de nuevo.
Lo que no entiendo es por qué, cuando la configuración del sitio está establecida en “encoded”, generamos un slug de esta manera:
El slug sin procesar de la tabla se devuelve en la cabecera Location de la respuesta 301 cuando el slug de un tema no coincide y, en mi opinión, deberíamos devolver una URL válida allí.
¿Entonces estás diciendo que la propia URL mostraría la versión codificada? ¿O simplemente que la redirección la manejaría internamente usando la versión codificada? De cualquier manera, sería genial que esto funcionara “por sí solo” y no dependiera de peculiaridades del navegador.
No, como indica el tema abierto en la categoría bug aquí
@sam Volví a revisar esto hoy y hay dos formas de abordarlo:
Almacenar un slug codificado real en la columna slug cuando la configuración de generación de slugs esté establecida en codificado. Crear una migración para borrar todos los slugs actuales cuando se usan slugs codificados, para que se regeneren correctamente con el tiempo.
Mantener el slug UTF-8 actual y corregirlo sobre la marcha al enviarlo en una cabecera para una redirección 301.
En mi opinión, la opción 1 es “más correcta” y hará más difícil pasar el slug sin procesar a un cliente. Sin embargo, simplemente corregir el generador de slugs no fue suficiente, ya que los navegadores reciben una URL codificada en la redirección 301 pero la decodifican para la siguiente solicitud, lo que hace que nuestra comparación de slugs falle y se redirija de nuevo. Eso significa que también tendré que corregir el método de comparación de slugs en el controlador de temas, y quizás en otros lugares.