Alguns ícones não aparecem após a migração

Prezados,

I. Gostaria de relatar um comportamento estranho do Discourse. Estamos usando a versão 2.7.0.beta7 e recentemente migramos (ou, melhor dizendo, vinculamos) nossa rede interna à internet pública. Temos um problema estranho aqui.
A maioria dos ícones (aqueles nos quais você clica) desapareceu. Veja:

No entanto, alguns deles estão funcionando normalmente. Tentei investigar, mas não consegui encontrar nenhum padrão. Ou talvez eu apenas não esteja vendo.

Você pode verificar por si mesmo aqui: https://community.robotict.com

Ficaria muito feliz se vocês pudessem compartilhar qualquer ideia.

II. Além disso (mas talvez isso não seja um problema relacionado), o editor de CSS personalizado não está funcionando. Consigo ver o CSS que adicionei no passado por meio segundo, e depois ele desaparece. O console indica que há um problema com o ace.js:

Uncaught TypeError: this.element.style is undefined
    i ace.js:1
    a ace.js:1
    y ace.js:1
    edit ace.js:1
    didInsertElement _admin-58c216d6bb14f7ee8451b6ef94ece0c6ea56c69b044ed8f4eea7934ec2ca3df8.js:315
    n ace.js:1
    a ace.js:1
    didInsertElement _admin-58c216d6bb14f7ee8451b6ef94ece0c6ea56c69b044ed8f4eea7934ec2ca3df8.js:303
    jQuery 10
    onreadystatechange _application-860b04b192b4dea3c5cb7e8d5e3d423bcf05a15ff2f4d8faf26a5d550ab169d2.js:10090
    c _application-860b04b192b4dea3c5cb7e8d5e3d423bcf05a15ff2f4d8faf26a5d550ab169d2.js:10083
    c _application-860b04b192b4dea3c5cb7e8d5e3d423bcf05a15ff2f4d8faf26a5d550ab169d2.js:10168
    jQuery 2
    c _application-860b04b192b4dea3c5cb7e8d5e3d423bcf05a15ff2f4d8faf26a5d550ab169d2.js:10130
    didInsertElement _admin-58c216d6bb14f7ee8451b6ef94ece0c6ea56c69b044ed8f4eea7934ec2ca3df8.js:302
    jQuery 26
ace.js:1:247491

:pray: Agradeço antecipadamente e envio cordiais saudações :heart:
Roman

O que deve fazer o botão com o ícone ausente acima? Parece que pode ser um plugin ou um componente do tema que o adiciona, e talvez ele não tenha registrado o ícone corretamente?

Isso também pode ser um problema com um plugin. Uma maneira de descobrir é ir para /safe-mode, desativar todos os plugins e temas e ver se a edição do CSS funciona depois. Se funcionar, é um problema com um plugin.

Havia um ícone de chave inglesa (Ações do Tópico). Além disso, como você pode (não) ver na captura de tela, à esquerda do texto “Responder”, normalmente você veria coração, corrente, caneta, marcador…
Vou verificar conforme sua recomendação.
Atualização: testei no Modo de Segurança, sem alterações :frowning:

Hmm, sim, isso é estranho. Você pode compartilhar quais plugins estão sendo usados no seu site?

Atualização: esse é um problema muito estranho, ele afeta consistentemente ícones em alguns lugares do aplicativo, mas não em outros. Talvez tentar fazer o redploy?

Sim, é muito estranho.
Usamos apenas esses dois plugins:

  • docker_manager v0.1
  • styleguide v0.2

Ok @romanhruska, acho que tenho uma explicação possível.

Algo na sua instância está forçando o prefixo https para uma constante de namespace SVG. Quando inspeciono o código JS, o equivalente para esta linha no núcleo retorna https://www.w3.org/2000/svg, enquanto, como você pode ver no núcleo, deveria ser http://www.w3.org/2000/svg. (Também testei localmente, editei essa linha para usar https e obtive uma reprodução perfeita.)

Você tem algum patch que faça isso? Se não, seu servidor faz alguma mágica para garantir que todas as strings http no JS sejam convertidas para https?

Bang!
Você está absolutamente certo. Esse era o problema. Agora os caras dos servidores mudaram a configuração e os ícones, assim como o editor, estão funcionando! Muito obrigado!!!

Ainda estamos lutando contra o aviso de conteúdo misto. Algumas imagens, como ícones ou logotipos, estão no código como HTTP:// e a mágica do nosso servidor parece não funcionar nelas. Alguma ideia sobre isso?

Mais uma vez, obrigado pela sua dica!

Ótimo!

Seu site estava internamente em http e depois foi movido para https? Você pode precisar garantir que SiteSetting.force_https retorne true e, se for esse o caso, pode ser necessário fazer um rebake. A partir da linha de comando, você precisaria executar bundle exec rake posts:rebake.