O iOS às vezes não carrega CSS ao navegar entre subdomínios

Parece acontecer apenas em dispositivos iOS - às vezes links externos abrem na mesma janela, mas o CSS não carrega. Estranho e nem consigo reproduzir!

Parece com isto:

Também encontrei relatos em outros fóruns públicos do Discourse:

Como foi relatado e corrigido antes, pergunto-me se pode estar relacionado a um tema ou componente de tema, talvez? Agradeceria qualquer ajuda.

3 curtidas

Quais erros são exibidos nos logs de rede quando o CSS falha ao carregar?

Quanto a ser teoricamente um problema de tema/componente, você já tentou o modo de segurança?

1 curtida

não simplesmente porque vi esse comportamento algumas vezes nas últimas duas semanas, apenas no meu iPhone e ouvi o mesmo de outros usuários, mas não consigo reproduzir, parece aleatório.

1 curtida

este parece ser um bug antigo. No momento, não consigo reproduzi-lo em nenhum lugar e todos os tópicos vinculados têm pelo menos um ano. parece um fórum que não está atualizado.

2 curtidas

Obrigado, mas está executando a versão beta mais recente :frowning:

O que foi corrigido nesse bug? Gostaria de saber se talvez haja um componente ou tema que reintroduziu esse bug?

1 curtida

Estou tentando pegá-lo novamente, parece que acontece ocasionalmente - não tenho certeza de como reproduzir. Acontece, apenas no iOS, que eu saiba.

1 curtida

Estou usando vários dispositivos iOS, iPhone 15 Pro Max, iPad Air 5ª geração, Macbook Air M2 e não consigo reproduzir isso :thinking:

Qual modelo de dispositivo e versão do iOS você está usando?

1 curtida

pessoalmente iPhone 12 com o iOS 17.4 mais recente

Isso só acontece para links externos usando <a> HTML, mas mesmo assim acontece ocasionalmente?

Gostaria de saber qual foi o bug corrigido - para que eu possa tentar acionar algo para reproduzi-lo :confused:

1 curtida

Como esses relatos se relacionam com problemas no CSS do Discourse Forums? O primeiro afirma explicitamente:

o fórum não é afetado por este problema

1 curtida

Parece ser o mesmo comportamento - acontece ao abrir um site externo de dentro do discourse. Por exemplo, abrir https://discourse.org/ a partir de meta.discourse.org.

Isso não parece ser um problema causado pelo fórum, então, se sites externos estão tendo problemas.

Eu também pensei assim, no entanto, parece acontecer apenas ao clicar no fórum e, como encontrei outras postagens, pensei que talvez alguém pudesse esclarecer isso - pode ser um problema do iOS. Seria mais fácil se não estivesse carregando CSS toda vez e apenas às vezes :sweat_smile:

1 curtida

@Lilly Gostaria de saber se você poderia compartilhar como o Discourse lida com href e se há alguma maneira específica para iOS? Isso parece ser um problema relacionado ao Safari, mas só acontece quando se sai do Discourse para outro domínio. Esse outro domínio não está sendo carregado como se o Discourse estivesse tentando carregar localmente o HTML da página solicitada.

Já tentamos forçar a política de não cache e brincar com o prefixo www. Nada parece funcionar. São exatamente os problemas mencionados aqui:

Eles tiveram o site principal carregado de seu community.URL.com, o que causou o mesmo carregamento parcial da página.

Obrigado desde já!

Nosso discourse é um subdomínio (here.domain.com) para o nosso site principal (domain.com).

Há meses que usuários de iPhone relatam que, ao clicar em links do subdomínio (discourse) de volta para o site principal, a página pode não carregar CSS ou JS, mas apenas HTML, tornando-a inutilizável.

Isso não acontece todas as vezes, mas com frequência suficiente para que eles precisem recarregar a página para corrigir. Ao recarregar, eles permanecem no discourse, então precisam clicar novamente.

Analisando o arquivo access.log do nginx, podemos ver que, por algum motivo, o discourse tenta buscar os arquivos do domínio principal em vez do índice do domínio principal.
Nem é preciso dizer que o discourse não possui esses arquivos, e assim a página fica quebrada.

Isto é do "access.log" do 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 \"-\" \"-\" \"-\" \"-\" \"-\" \"-\" \"-\"

Tentamos usar links href e window.reload(), mas o problema permanece o mesmo. Mais uma vez, acontece apenas ocasionalmente e apenas para usuários de iPhone.

Alguma ideia do porquê isso acontece e como pode ser corrigido?

1 curtida

Este é o mesmo problema que você descreveu aqui?

1 curtida

Sim! Precisa ser mesclado :sweat_smile:

Acho que agora entendemos melhor o que está errado.

2 curtidas

Algum membro da equipe tem alguma opinião? @Lilly Sei que discutimos isso há alguns meses - talvez você tenha insights adicionais para compartilhar?

Acho que é o mesmo problema do site de discussão que compartilhei na minha primeira postagem.

Observamos alguns problemas estranhos como este. Pelo que podemos dizer, deve ser um bug no Safari/WebKit. Seria impossível que esse tipo de renderização de ‘site misto’ acontecesse. Registramos um relatório com o WebKit. (cc @pmusaraj)

Se alguém conseguir encontrar uma maneira consistente de reproduzir o problema, isso certamente ajudaria a priorizar o bug.

6 curtidas

Alguma ideia para uma solução alternativa de link externo?
Tanto o HREF do HTML quanto o window.replace do JS se comportam da mesma forma :frowning:
(Tenho certeza de que Avançar/Voltar são quase impossíveis de substituir)

1 curtida

Infelizmente, não tenho ideias para uma solução alternativa. Tentei cancelar o registro de service workers caso esse fosse o motivo do conflito, mas não teve efeito.

Atualmente, mudei para o Safari Technology Preview localmente. Ele parece não ter o problema, o que pode ser um indicativo de que isso foi corrigido em versões mais recentes do Webkit. Ou, significa que um navegador novo com um cache novo não tem os problemas… difícil dizer.

Monitoraremos isso e continuaremos procurando por correções, os problemas afetam várias pessoas na equipe do Discourse e em diferentes plataformas (macOS, iOS, aplicativo DiscourseHub). A curto prazo de encontrar uma correção mágica, no entanto, o melhor que podemos fazer aqui é seguir o relatório de bug do Webkit e adicionar informações adicionais lá, se relevante/útil.

2 curtidas