Para mim, isso parece um bug, mas aí eu veria um tópico sobre isso aqui. Então, se meu fórum for o único com esse problema, deve ser algo do meu lado.
Bom, de qualquer forma.
Meus usuários de Android não conseguem ver o teclado virtual ao usar o editor de texto rico. Quando mudam para Markdown, tudo funciona normalmente. iPads e iPhones (Safari/PWA, DiscourseHub) ficam travados no modo Markdown e não conseguem mudar para o editor de texto rico.
Isso começou há dois dias, imagino. Meus usuários tendem a esperar antes de me avisar que algo está quebrado.
O que mais… auto-hospedado, 2 contêineres, na versão mais recente e atualizado diariamente, e o mais novo tem agora 20 minutos de idade no momento em que estou escrevendo. O modo de segurança não ajuda.
Qual é meu próximo passo? O console e possíveis erros não são uma opção em dispositivos móveis.
(index):1 Access to script at 'https://cdnfoorumi.katiska.eu/assets/br/chunk-coedl1gv.digested.js' from origin 'https://foorumi.katiska.eu' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
prosemirror-editor-opfbo6zd.digested.js:1 GET https://cdnfoorumi.katiska.eu/assets/br/chunk-coedl1gv.digested.js net::ERR_FAILED 200 (OK)
d-editor.gjs:212 Uncaught (in promise) TypeError: Failed to fetch dynamically imported module: https://cdnfoorumi.katiska.eu/assets/br/prosemirror-editor-opfbo6zd.digested.js
O Prosemirror é o editor de texto rico (RTEditor). Mas não posso ajudar além de compartilhar a mensagem de erro que vejo.
Fora de tópico: Obrigado pela risada sobre sua categoria “Beijos e animais” (Infelizmente, a tradução em inglês diz ‘cats’ em vez disso, então vou me ater à versão em alemã )
Não entendo o que estou vendo aqui, mas o problema está no S3 e nas minhas configurações lá? Se sim, por que isso começou recentemente? Um sintoma pode ser que, desde ontem, não consigo mais escrever notas nos quadros.
Mas, se o CORS é o problema, por que apenas esses estão afetados?
—
Por que, em nome dos deuses antigos e novos, a IA usou Küsse nesse contexto
Não acho que tenham havido mudanças recentes no Discourse que causem isso. No entanto, o S3 tem uma peculiaridade de longa data com CORS, que pode fazer com que CDNs cacheiem uma versão do asset sem o cabeçalho Access-Control-Allow-Origin. E, se for um problema de cache ruim, isso poderia explicar por que afeta apenas alguns dos seus usuários (provavelmente com base na localização deles).
Se não me engano, o S3 só envia o cabeçalho Access-Control-Allow-Origin para solicitações que enviam um cabeçalho Origin (ou seja, aquelas vindas de um navegador web normal). Quando o Access-Control-Allow-Origin é omitido, ele não envia Vary: origin em sua resposta. E assim: se a primeira solicitação para um determinado asset for enviada de um contexto que não seja de navegador web (por exemplo, curl, ou algum crawler web), o CDN pode cacheiar a versão sem o cabeçalho CORS. Muito chato!
A configuração DISCOURSE_CORS não ajudará em nada aqui. Ela só é relevante para o servidor de aplicação, não para o S3.
Na nossa hospedagem, contornamos esse problema configurando o Cloudfront para adicionar Access-Control-Allow-Origin: * a todas as respostas. Isso garante que o comportamento estranho do S3 não possa causar o cacheamento de um resultado ruim.
Alternativamente, você pode configurar o Cloudfront para incluir o cabeçalho de solicitação Origin em sua chave de cache, o que manteria as respostas sem CORS separadas das respostas com CORS.
A Amazon tem uma série de documentações sobre CORS aqui. Eu tinha este link nas minhas anotações, que aparentemente era um tópico de fórum exatamente sobre essa questão… mas parece que eles o removeram
Exato — é necessário para um domínio personalizado e também deixa as coisas mais baratas (a saída via Cloudfront é mais barata que a saída direta do S3, se não me engano)