(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
Prosemirror는 RTEditor입니다. 하지만 제가 볼 수 있는 오류 메시지를 공유하는 것 이상으로는 더 이상 도움을 드릴 수 없습니다.
부수적인 이야기: “Kisses and animals”(키스와 동물) 카테고리에 대한 웃음 감사합니다. (불행히도 영어 번역에는 ‘cats’(고양이)라고 되어 있어서, 독일어 버전을 유지할게요 )
이 문제를 일으킬 만한 최근의 Discourse 변경 사항은 없다고 생각합니다. 하지만 S3에는 CORS와 관련된 오래된 특이한 문제가 있으며, 이로 인해 CDN이 Access-Control-Allow-Origin 헤더가 없는 자산 버전을 캐시할 수 있습니다. 그리고 이것이 잘못된 캐시 문제라면, 왜 일부 사용자(아마도 위치 기반일 가능성이 높습니다)에게만 영향을 미치는지 설명할 수 있습니다.
기억이 맞다면, S3는 Origin 헤더를 전송하는 요청(즉, 일반적인 웹 브라우저에서 오는 요청)에만 Access-Control-Allow-Origin 헤더를 제공합니다. Access-Control-Allow-Origin가 생략된 경우, 응답에 Vary: origin을 제공하지 않습니다. 따라서: 특정 자산에 대한 첫 번째 요청이 웹 브라우저가 아닌 컨텍스트(예: curl 또는 일부 웹 크롤러)에서 전송되면, CDN은 CORS 헤더가 없는 버전을 캐시할 수 있습니다. 정말 귀찮은 문제입니다!
여기서는 DISCOURSE_CORS 설정이 전혀 도움이 되지 않습니다. 그것은 S3가 아니라 애플리케이션 서버에만 관련이 있기 때문입니다.
우리의 호스팅에서는 Cloudfront를 구성하여 모든 응답에 Access-Control-Allow-Origin: *를 추가함으로써 이 문제를 우회합니다. 이렇게 하면 S3의 특이한 동작이 잘못된 결과가 캐시되는 것을 방지할 수 있습니다.
또는, Cloudfront를 구성하여 캐시 키에 Origin 요청 헤더를 포함하도록 할 수도 있습니다. 그러면 non-CORS 응답과 CORS 응답이 별도로 유지됩니다.
Amazon은 CORS에 대한 문서를 여기에 많이 제공하고 있습니다. 제 노트에는 정확히 이 문제에 대한 포럼 스레드였던 것으로 보이는 이 링크가 있었는데, Apparently 삭제된 것 같습니다