Sinta-se à vontade para acessar https://sales-community-staging.rainmakers.co/sales-community/ para ver o problema. Não há garantias de que estará disponível para sempre.
Acredito que isso ocorra porque não está adicionando /sales-community à URL.
Avise-me se fornecer o app.yml ou o nginx.conf seria útil.
Isso está na version: tests-passed.
Tentei version: stable para corrigir, mas não compila no Docker no momento (mencionado em outro relatório de bug que vi antes; eu estava começando do zero, não fazendo downgrade).
Sim. Tudo o mais funciona (postagens, e-mails, upload de avatares, HTTPS, etc.). Todos os outros recursos têm URLs corretas na subpasta /sales-community (como mostrado na imagem). Apenas o SVG está quebrado.
Sim, então o problema não é com a CSP, porque a URL está simplesmente errada. Parece que ela não está sendo prefixada com o caminho da subpasta. Acredito que precise ser adicionada aqui?
Temos toda a lógica implementada para sprites SVG em cenários de subpastas, e ela é usada com sucesso por vários sites. Neste caso, encontramos um caso de borda muito específico. Verificando as variáveis principais no site de @vkozyrev (no console do navegador):
Parece correto. Agora, ao carregar a folha de sprites SVG, usamos loadScript, que por sua vez chama Discourse.getURL. Essa função é responsável por adicionar o prefixo da subpasta. Testando isso:
Um pouco mais de investigação revela esta linha dentro de getUrl:
if (url.indexOf(Discourse.BaseUri) !== -1) return url;
Ou, em português: “se a URL já contiver o prefixo da subpasta, desista”. Então, o problema aqui é que o prefixo da subpasta de @vkozyrev (/sales-community) está incluído no meio da URL da folha de sprites SVG:
Fiz a verificação mais específica, para que ela verifique o prefixo da subpasta apenas no início da URL:
Embora isso me faça pensar em outros problemas potenciais… por exemplo, se alguém quisesse que o prefixo da subpasta fosse /t ou /about, ou qualquer outra URL que usamos no Discourse
Esse é um caso de borda incrível . Eu faço desenvolvimento em Rails (apenas modo API), feliz por não ter ido muito fundo no coelho, senão teria me perdido no código do cliente.
Caso esteja curioso, tenho um proxy na frente disso, então o subdomínio sales-community fica oculto para os usuários; eles verão apenas /sales-community na frente da URL do nosso site principal. O site principal está no Heroku, então não posso ter uma única instância do nginx fazendo todo o roteamento.
Obrigado pelas respostas rápidas e pela correção, pessoal!