Uncaught SyntaxError: 포럼이 계속 회전하고 절대 로드되지 않음

여기서 누군가 올바른 방향을 알려주셨으면 합니다. 제목처럼, forum.wackywriters.com 포럼이 계속 회전하며 로딩되지 않습니다. 콘솔에 다음과 같은 오류가 표시됩니다:

대부분 'Uncaught Syntax Error’이지만, 그 뒤에 ‘jQuery is not defined’ 오류가 하나 더 있습니다(총 46개 오류). 오늘 갑자기 시작되었고, 제 쪽에서는 경고나 업데이트가 없었기 때문에 무엇이 트리거가 되었는지 확실하지 않습니다.

시도해 본 문제 해결 방법:

  • 재빌드, 재빌드, 재빌드.
  • 클리너 실행 후 다시 재빌드
  • 모든 테마와 플러그인(공식/비공식)을 비활성화한 안전 모드. 안전 모드 페이지에는 접근할 수 있지만, 진입하면 동일한 오류가 발생합니다.
  • Cloudflare를 사용하고 있습니다(네, 압니다) 그리고 brotli 압축이 작동 중임을 확인했습니다. 해당 쪽에서 캐시를 삭제하고 일반 캐싱을 우회(개발 모드)하여 그들의 엔드에서 모든 것이 정상 작동하는지 확인했습니다. app.yml에서 Cloudflare 템플릿이 활성화되어 있습니다. DNS 전용으로 설정하거나 Cloudflare를 완전히 비활성화하면 보안 오류(SSL 인증서는 Cloudflare를 통해 발급됨)가 발생합니다.
  • DigitalOcean에 문제가 없음을 확인했습니다.
  • 확실하게 하기 위해 다시 재빌드.

흥미로운 점은 로그에(오늘의) 오류가 없다는 것입니다. 사이트에는 접근할 수 있지만, 그곳에 도달하고 전체 Discourse 포럼에 액세스하는 사이에 무언가가 사이트를 마비 상태로 만들고 있습니다.

지난 일주일 동안 변한 유일한 것은 app.yml에서 Font Awesome Pro 라이선스 키를 업데이트한 것인데, 그것은 며칠 전의 일이었습니다. 포럼이 이런 행동을 시작한 것은 오늘입니다. (Cloudflare를 완전히 비활성화하거나 백업에서 복원하는 것을 제외하고) 이 문제를 해결하기 위해 시도해 볼 수 있는 다른 방법이 있을까요? 오늘 몇 시간 동안 이것에 매달렸지만 성공은 0입니다. 도움이 될 것 같으면 더 많은 스크린샷이나 편집된 app.yml 파일을 제공할 수 있습니다.

업데이트: 일단 Cloudflare를 제거해 보려고 결심을 굳혔고, 백업도 복원했습니다. 그런데도 여전히 같은 문제가 발생합니다.

스크린샷에서 오류를 볼 수 없지만, discourse-layouts 플러그인과 관련된 오류가 보입니다. 해당 플러그인 없이 다시 빌드해 보시겠어요?

안전 모드(Wacky Writers' Forum - Read. Write. Respect.)에서 사이트를 로드하려고 할 때 콘솔에서 확인되는 오류들이 흥미롭습니다. 다음과 같은 오류들이 있습니다:

Invalid or unexpected token at https://storage.wackywriters.com/assets/browser-detect-99f42f91bffa8ca1606d62b70bb92f981d83921e78ccdbd3d9538f07007f27ac.br.js

https://storage.wackywriters.com/assets/browser-detect-99f42f91bffa8ca1606d62b70bb92f981d83921e78ccdbd3d9538f07007f27ac.br.js 에 있는 파일은 제게 자바스크립트로 보이지 않습니다.

이 파일의 손상된 버전일 것이라고 추측합니다: https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/scripts/browser-detect.js, 하지만 이는 단지 추측일 뿐입니다.

app.yml 파일에서 플러그인을 제거하고 다시 빌드해 보시는 건 어떨까요?

네, 거기에 문제가 있는 것일 수 있습니다. 안전 모드에서도 문제를 일으키는 플러그인이나 다른 요소일 수도 있죠.

:point_down:t2:

지금 단계에서는 모든 것을 기본으로 되돌려서 깨끗한 설치 시에도 동일한 오류가 발생하는지 확인해 보고 있습니다.

모든 플러그인을 주석 처리하고 다시 빌드해 봤지만 같은 문제가 발생했습니다.

제 추측으로는 어떤 것이 제대로 파싱되지 않는 것 같습니다. 실제로 모든 에셋을 지우고 다시 빌드하여 재생성해 봤지만 동일한 문제가 발생했습니다.

네, 저도 그렇게 생각해서 모든 플러그인을 주석 처리해 봤지만 동일한 오류가 발생했습니다.

Cloudflare rocketloader는 문제가 있으며 Discourse를 손상시킵니다.

네, 맞아요. 그래서 그들을 거치던 구조에서 벗어나서 일반 DNS로 설정해 두었죠. 그 가능성을 배제하기 위해서요.

물론 지금은 DNS 전파가 완료되고, 업데이트된 LetsEncrypt 인증서들이 모두 정리될 때까지 기다려야 하네요. 모든 것이 업데이트될 때까지 또 다른 복잡한 단계가 생긴 셈이죠. :joy:

그렇게 해도 문제가 해결되지 않는다면 CDN을 정리해 보는 것이 좋습니다. digitaloceanspaces.com에 있는 것 같습니다. 손상된 파일을 서빙하고 있는 것 같습니다. 예: https://storage.wackywriters.com/assets/start-discourse-7c0f5f4daf3c942b7b6ecfe8e62e2e5a0f6555924859cf055314c0df3d617353.br.js.

오 감사합니다, 그렇게 해볼게요. Cloudflare에서는 캐시를 비웠는데 DO Spaces에서는 아직 안 했어요 :thinking:

이 주제에 근거하면, 어떤 점을 파악하신 것 같습니다: S3, Assets & CDN Error

진심으로, 안아주고 싶습니다. 문제는 정말로 DO Spaces, 특히 여기에서 언급된 그들의 CDN에 있었습니다: Configure an S3 compatible object storage provider for uploads

bunny.net를 통해 새로운 CDN을 설정했고, 이제 우리는 가볍게 다시 작동하고 있습니다. 여전히 백업을 정리하고 깨진 이미지 중 일부를 수정해야 하지만, 오늘 하루 종일 기능적으로 돌아온 것에 가장 가까운 상태입니다 하하. 감사합니다, 감사합니다! 우리의 spaces 설정을 그 CDN/S3 구성으로 실행해 온 지… 천, 2년쯤 되거나 하는 것 같습니다. 지금 _이전_에 고장 나지 않은 것은 운이 좋았던 것 같습니다.