Atualização de 2.4.0.beta9 para 2.4.0.beta10 resulta em página sem conteúdo - Cloudflare Rocket Loader

Recebi hoje de manhã uma notificação por e-mail sobre uma atualização de navegador com um clique, que realizei como de costume. Após a conclusão e ao retornar aos fóruns, só obtenho uma página em branco com a imagem de fundo e o cabeçalho esperados, mas sem nenhum outro conteúdo.

Mudei para /var/discourse e executei ./launcher rebuild app, que funcionou conforme o esperado, mas o site do fórum continua apresentando o mesmo comportamento (imagem de cabeçalho + fundo, sem conteúdo).

Ajuda?

Se eu visualizar o código-fonte, parece que pelo menos PARTE do conteúdo está lá… só não está visível. Nenhuma alteração foi feita neles entre a versão 2.4.0.beta9 e a build atual.

Você tem algum erro no console do seu navegador? (Clique com o botão direito, inspecione o elemento e, em seguida, vá para a aba do console)

Sim:

Recusa em carregar o script ‘https://ajax.cloudflare.com/cdn-cgi/scripts/7089c43e/cloudflare-static/rocket-loader.min.js’ porque viola a seguinte diretiva de Política de Segurança de Conteúdo: “script-src ‘report-sample’ https://forums.stillwellaudio.com/logs/ https://forums.stillwellaudio.com/sidekiq/ https://forums.stillwellaudio.com/mini-profiler-resources/ https://forums.stillwellaudio.com/assets/ https://forums.stillwellaudio.com/brotli_asset/ https://forums.stillwellaudio.com/extra-locales/ https://forums.stillwellaudio.com/highlight-js/ https://forums.stillwellaudio.com/javascripts/ https://forums.stillwellaudio.com/plugins/ https://forums.stillwellaudio.com/theme-javascripts/ https://forums.stillwellaudio.com/svg-sprite/ https://www.google-analytics.com/analytics.js”. Observe que ‘script-src-elem’ não foi definido explicitamente, então ‘script-src’ foi usado como alternativa.

20O recurso foi pré-carregado usando link preload, mas não foi utilizado dentro de alguns segundos após o evento de carregamento da janela. Certifique-se de que ele tenha um valor apropriado para as e que o pré-carregamento seja intencional.

A ‘otimização’ de JavaScript da Cloudflare causa regularmente problemas em sites Discourse. Você deve fazer login na sua conta da Cloudflare e alterar o domínio do fórum de uma ‘nuvem laranja’ para uma ‘nuvem cinza’.

Essa é uma correção fácil, obrigado. É uma pena, pois isso contorna toda a proteção contra DDoS e o mascaramento de endereço IP do Cloudflare, mas alterá-lo realmente fez funcionar. Vou entrar em contato com o suporte do Cloudflare para reportar o problema.

Não acho que haja muito que o Cloudflare possa fazer automaticamente. Existem instruções para permitir o Rocket Loader na CSP. No entanto, o JavaScript do Discourse já é altamente otimizado, então o Rocket Loader não é necessário.

Se você acessar as configurações do seu Cloudflare, deverá ser possível desativar especificamente o Rocket Loader. Em seguida, você pode reativar o proxy e os erros de CSP devem desaparecer.

Para a maioria dos usuários, é mais fácil desativar o Cloudflare completamente, mas se você realmente precisar da proteção contra DDoS, pode configurá-lo seguindo as instruções aqui: Full site CDN acceleration for Discourse

Confirmado: desativar o Rocket Loader e reativar o Proxy também parece funcionar. Essa é uma boa solução de compromisso, obrigado!

Para deixar claro, você não precisa desativar a nuvem laranja; também pode mantê-la ativa com uma regra de página para “desativar o desempenho” em todo o site.

A proteção contra DDoS deles não está vinculada aos recursos de otimização.

Dito isso, manter a nuvem ativa deixa cada solicitação mais lenta. Portanto, a menos que você realmente precise da proteção contra DDoS ou queira usar a CDN deles, é melhor deixá-la desativada.

Uso o roteamento inteligente Argo e outros recursos de desempenho do Cloudflare e, como regra geral, isso REALMENTE melhora o desempenho de forma perceptível… principalmente para o site principal naquele domínio, e não para o fórum. Mas o site principal é o que permite que as pessoas comprem meus produtos… mais rápido é melhor. De qualquer forma, desativar aquela otimização específica (Rocket Loader) permite que o Discourse funcione atrás do proxy, e isso é um compromisso razoável. Obrigado!

Problema semelhante após a atualização para a versão 2.4.0 beta 10

Tenho as versões https://www e https:// (sem o www).

A versão com https://www funciona perfeitamente.

A versão sem www fica em branco no Chrome e no Safari, com muitos erros no Console.

Recusado carregar o script ‘’ porque viola a seguinte diretiva de Política de Segurança de Conteúdo: “script-src ‘report-sample’ ”. Observe que ‘script-src-elem’ não foi definido explicitamente, então ‘script-src’ foi usado como alternativa.

Recusado carregar o script ‘https://dastereo.ru/assets/locales/ru-2fae24b4e1db72deb2076bee15794ed9e0a6814a5bf52d778e29c106812aaa6c.js’ porque viola a seguinte diretiva de Política de Segurança de Conteúdo: “script-src ‘report-sample’ https://www.dastereo.ru/logs/ https://www.dastereo.ru/sidekiq/ https://www.dastereo.ru/mini-profiler-resources/ https://www.dastereo.ru/assets/ https://www.dastereo.ru/brotli_asset/ https://www.dastereo.ru/extra-locales/ https://www.dastereo.ru/highlight-js/ https://www.dastereo.ru/javascripts/ https://www.dastereo.ru/plugins/ https://www.dastereo.ru/theme-javascripts/ https://www.dastereo.ru/svg-sprite/ https://www.google-analytics.com/analytics.js”. Observe que ‘script-src-elem’ não foi definido explicitamente, então ‘script-src’ foi usado como alternativa.

Existe uma solução simples?

Executar um site em dois domínios simultaneamente não é suportado. Você poderia corrigir esse erro específico desativando a Política de Segurança de Conteúdo, mas eu não recomendaria isso.

O ideal seria redirecionar um dos domínios para o outro.

Você também usa o Cloudflare? Se sim, você pode usar duas regras de página para redirecionar de:

http://example.com/* :right_arrow: https://example.com/$1
https://example.com/* :right_arrow: https://www.example.com/$1