불행히도 내 Discourse 서버의 IP 주소를 변경했는데, 이로 인해 CloudFront 도메인에 문제가 생겼습니다.
그래서 yaml 파일에서 DISCOURSE_CDN_URL 주석을 처리하고 다시 빌드했습니다. 하지만 브라우저 캐시가 있는 상태(즉, 시크릿 모드가 아닌 상태)에서 Discourse 앱에 접속하면 HTML에 CloudFront URL이 포함되어 있고, 무한 로딩(죽의 바퀴) 현상이 발생합니다.
처음에는 게시물 베이킹(post baking) 문제일 것이라고 생각했지만, 시크릿 모드에서도 작동하지 않았습니다.
업로드가 아닌 CDN의 경우 그렇지 않은 것 같습니다. 제 판단으로는 베이킹된 게시물 콘텐츠 내에 에셋 URL이 존재하지 않는 것 같습니다.
불행히도 이는 사용자에게 실질적인 해결책이 되지 못합니다. get 파라미터를 이용한 캐시 버스터(cache buster)와 같은 기능이 있으면 좋았을 텐데, 캐시가 왜 영향을 미쳤는지에 대해 제가 완전히 파악하지는 못했습니다. 다만 시크릿 모드와 일반 모드 간에 동작 차이가 있었을 뿐이니까요.