Solo parece ocurrir en dispositivos iOS; a veces los enlaces externos se abren en la misma ventana pero la CSS no se carga. Es extraño y ni siquiera puedo reproducirlo.
Se ve así:
También encontré informes en otros foros públicos de Discourse:
Dado que se informó y se corrigió antes, me pregunto si podría estar relacionado con un tema o un componente temático, ¿quizás? Agradecería cualquier ayuda.
no, simplemente porque he visto este comportamiento varias veces en las últimas dos semanas, solo en mi iPhone y he escuchado lo mismo de otros usuarios, pero no puedo reproducirlo, parece aleatorio.
Parece un error antiguo. No puedo reproducirlo en este momento y todos los temas vinculados tienen al menos un año. Parece un foro que no está actualizado.
Parece ser el mismo comportamiento: ocurre al abrir un sitio web externo desde Discourse. Por ejemplo, al abrir https://discourse.org/ desde meta.discourse.org.
Yo también lo pensé, sin embargo, parece que solo sucede al hacer clic desde el foro y, como encontré otras publicaciones, pensé que tal vez alguien podría arrojar luz sobre esto: podría ser un problema de iOS. Sería más fácil si no cargara CSS cada vez y solo a veces
@Lilly Me pregunto si podrías compartir cómo maneja Discourse los href y si hay alguna forma particular para iOS. Esto parece ser un problema relacionado con Safari, pero solo ocurre desde dentro de Discourse al salir a otro dominio. Ese otro dominio no se está cargando como si Discourse intentara cargar localmente el HTML de la página solicitada.
Ya hemos intentado forzar la política de no caché y jugar con el prefijo www. Nada parece funcionar. Es exactamente el problema mencionado aquí:
Tenían el sitio web principal cargado desde su community.URL.com, lo que causó la misma carga parcial de la página.
Durante meses, los usuarios de iPhone han informado que al hacer clic en enlaces desde el subdominio (discourse) de regreso al sitio principal, la página puede no cargar CSS o JS, sino solo HTML, y por lo tanto, queda inutilizable.
Esto no sucede siempre, pero con la frecuencia suficiente como para que tengan que recargar la página para solucionarlo. Al recargar, en realidad permanecen en discourse, por lo que tienen que hacer clic de nuevo.
Al observar el archivo access.log de nginx, podemos ver que por alguna razón discourse intenta obtener los archivos del dominio principal en lugar del índice del dominio principal.
No hace falta decir que discourse no tiene estos archivos, por lo que la página queda rota.
Esto es de “access.log” de nginx:
[19/May/2024:09:49:51 +0000] "here.domain.com" 176.76.227.47 "GET /js/cart/cart.js?v=0.32 HTTP/2.0" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Ribblr Mobile" "-" 429 230 "https://here.domain.com/c/testing/17" - 0.000 "-" "-" "-" "-" "-" "-" "-"
[19/May/2024:09:49:51 +0000] "here.domain.com" 176.76.227.47 "GET /css/footer_and_header.css?v=1.13 HTTP/2.0" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Ribblr Mobile" "-" 404 7963 "https://here.domain.com/c/testing/17" 0.019 0.019 "-" "-" "-" "-" "-" "-" "-"
[19/May/2024:09:49:51 +0000] "here.domain.com" 176.76.227.47 "GET /css/common/jssocials.css?v=0.03 HTTP/2.0" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Ribblr Mobile" "-" 404 7968 "https://here.domain.com/c/testing/17" 0.020 0.020 "-" "-" "-" "-" "-" "-" "-"
[19/May/2024:09:49:51 +0000] "here.domain.com" 176.76.227.47 "GET /js/common/lightslider.js?v=0.14 HTTP/2.0" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Ribblr Mobile" "-" 404 7980 "https://here.domain.com/c/testing/17" 0.020 0.020 "-" "-" "-" "-" "-" "-" "-"
[19/May/2024:09:49:51 +0000] "here.domain.com" 176.76.227.47 "GET /js/common/jssocials.js HTTP/2.0" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Ribblr Mobile" "-" 404 7978 "https://here.domain.com/c/testing/17" 0.034 0.034 "-" "-" "-" "-" "-" "-" "-"
Intentamos usar enlaces href y window.reload(), pero el problema sigue siendo el mismo. Una vez más, solo ocurre ocasionalmente y solo para usuarios de iPhone.
¿Alguna idea de por qué sucede esto y cómo se puede solucionar?
¿Alguno de los miembros del equipo tiene alguna opinión? @Lilly Sé que hablamos de esto hace un par de meses, ¿quizás tengas alguna información adicional que compartir?
Creo que es el mismo problema que el sitio web de Discourse que compartí en mi primera publicación.
Hemos observado algunos problemas extraños como este. Por lo que podemos determinar, debe ser un error en Safari/WebKit. Debería ser imposible que ocurra este tipo de renderizado de ‘sitio mixto’. Hemos presentado un informe a WebKit. (cc @pmusaraj)
Si alguien puede encontrar una forma consistente de reproducir el problema, eso casi con seguridad ayudaría a priorizar el error.
¿Alguna idea para una solución alternativa de enlaces externos?
Ambos, HREF de HTML y window.replace de JS, se comportan igual
(Estoy seguro de que los botones de Adelante/Atrás son casi imposibles de anular)
Lamentablemente, no tengo ideas para una solución alternativa. Intenté anular el registro de los service workers en caso de que esa fuera la razón del conflicto, pero no tuvo ningún efecto.
Actualmente he cambiado a Safari Technology Preview localmente. Parece que no tiene el problema, lo que puede ser un indicador de que esto está solucionado en versiones más nuevas de Webkit. O significa que un navegador nuevo con una caché nueva no tiene los problemas… es difícil decirlo.
Monitorizaremos esto y seguiremos buscando soluciones, el problema afecta a varias personas en el equipo de Discourse y en diferentes plataformas (macOS, iOS, aplicación DiscourseHub). Aparte de encontrar una solución mágica, lo mejor que podemos hacer aquí es seguir el informe de errores de Webkit y añadir información adicional allí, si es relevante/útil.