Uncaught ReferenceError: Discourse não definido devido ao Cloudflare Rocket Loader

Em alguns tópicos do meu site, quando os abro em um dispositivo móvel, recebo esses erros no console de JS,

Por exemplo, ao abrir este link no móvel: FAQs For New Content Writers - How To Discuss

O mesmo erro ocorre se eu tentar acessar um tópico diretamente adicionando seu ID em vez do slug do nome do tópico:

O mesmo erro ocorre se eu abrir este tópico no desktop:

Atualizei o Discourse recentemente e também fiz uma reconstrução manual pelo terminal, mas o erro persiste. Alguém pode ajudar a resolver isso?

Há algum plugin causando isso? Estes são os meus plugins atualmente:

Todos os meus plugins estão atualizados:

Além disso, acabei de testar e confirmei que o erro não ocorre se eu acessar meu site, pesquisar pelo tópico “FAQ” e clicar nele. Porém, se eu copiar diretamente a URL desse tópico e abri-la no navegador ou clicar em um link (em algum outro site externo, não no Discourse), esse erro aparece.

Aqui está o log de erro RAW:

1 curtida

Você está usando o Cloudflare Rocket Loader, que não é compatível.

Acesse a entrada DNS do Discourse no painel de administração do Cloudflare e mude a nuvem para cinza. O Discourse falhará aleatoriamente com uma nuvem laranja, como você pode ver.

3 curtidas

@Falco, muito obrigado pela sua rápida resposta. Acabei de colocar essa Cloud em cinza, ou seja, configurei para DNS apenas; antes estava em modo proxy.

Mas ainda vejo o mesmo erro. Acho que devo desativar o Rocket Loader nas configurações do CF também.

Já desativei o Rocket Loader nas configurações.

Mas, ao atualizar essa URL, ainda vejo os mesmos erros :frowning:

Na minha experiência, leva algumas horas para a alteração ser efetivada.

1 curtida

Ok, vamos ver, então você sugere que eu mantenha aquela nuvem cinza e desative o Rocket Loader nas configurações também?

Além disso, notei várias vezes, aleatoriamente, que a interface do meu site quebra assim e vejo esse erro no console:

NetworkFirst.mjs:167 Uncaught (in promise) no-response: no-response :: [{"url":"https://pagead2.googlesyndication.com/pagead/gen_204?id=puberror&context=165&msg=TagError%3A%20adsbygoogle.push()%20error%3A%20No%20slot%20size%20for%20availableWidth%3D0%0Aat%20Vj%20(https%3A%2F%2Fpagead2.googlesyndication.com%2Fpagead%2Fjs%2Fadsbygoogle.js%3A155%3A453)%0Aat%20Uj%20(adsbygoogle.js%3A154%3A137)%0Aat%20ik%20(adsbygoogle.js%3A162%3A239)%0Aat%20Pk%20(adsbygoogle.js%3A191%3A493)%0Aat%20sl%20(adsbygoogle.js%3A209%3A106)%0Aat%20rl%20(adsbygoogle.js%3A207%3A1123)%0Aat%20Cl%20(adsbygoogle.js%3A222%3A288)%0Aat%20adsbygoogle.js%3A217%3A43%0Aat%20Ce.n.ba%20(adsbygoogle.js%3A68%3A294)%0Aat%20Qe%20(adsbygoogle.js%3A77%3A357)&shv=r20200924&eid=42530672%2C21067492&client=ca-pub-7087907313091932&slotname=5744927958&url=https%3A%2F%2Fhowtodiscuss.com%2Flatest"}]
    at a.makeRequest (https://howtodiscuss.com/javascripts/workbox/workbox-strategies.prod.js:1:2145)

Mesmo que eu desative ou ative o bloqueador de anúncios, esse erro não desaparece.

Esse tópico estava funcionando bem agora, mas

Além disso, agora estou recebendo o erro de conexão não segura

Eu reativei o proxy no Cloudflare e desativei o Rocket Loader nas configurações, vamos ver.

A nuvem laranja significa que você não obteve um certificado para seu site durante a instalação, que é instalado por padrão para todos os demais.

Por favor, leia e siga Set up HTTPS support with Let's Encrypt para corrigir o problema.

2 curtidas

Ok, mas eu mudei para proxy de nuvem laranja e desativei o Rocket Loader nas configurações. Parece que está funcionando bem agora, obrigado!

Além disso, você poderia me orientar se tem experiência com Nginx e como fazer um redirecionamento com um parâmetro de consulta? https://stackoverflow.com/questions/64110945/nginx-virtualhost-how-to-redirect-a-discourse-url-with-amp-query-parameter-to