환영 배너 설정 활성화 이해하기 어려움

누군가 이 부분을 이해하는 데 도움을 줄 수 있을까요? 설정이 반대 방향으로 작동할 거라고 기대하고 있어서, 아주 명백한 것을 놓치고 있는 것 같습니다.

설명의 내용은 다음과 같습니다.

메인 토픽 목록 페이지에 배너를 표시하여 회원들을 환영하고 사이트 콘텐츠 검색을 허용합니다.

그래서 저는 이렇게 기대했습니다:

체크박스 선택 → 환영 배너 표시
체크박스 해제 → 배너 표시 안 함

하지만 정반대의 상황이 발생합니다:

정말 이상하네요… 제 환경에서는 재현이 안 됩니다. 혹시 실수로 오래된 컴포넌트가 아직 설치되어 있는 건 아니죠?

그렇게 생각하지 않아요

참고로: 약 5번 중 1번 정도만 설정을 전환하면 의도대로 작동하지만, 대개는 그렇지 않아요.

@yuriy 이게 왜 발생하는지 혹시 아이디어가 있으신가요?

Discourse에서 호스팅하는 사이트이므로, 누구나 직접 시도해 볼 수 있습니다.

컴포넌트 없이 Foundation에서 재현할 수 있었습니다.

업데이트 시점의 설정이 표시되는 것 같다는 인상을 받고 있습니다. 배너를 20시간 전에 활성화했고, 16시간 전에 업데이트가 있었습니다. 이후 배너를 제거하는 데 문제가 발생했습니다. 하지만 8시간 전에 또 다른 업데이트가 된 후부터는 상황이 나아졌습니다. 지금은 배너가 거의 표시되지 않습니다. 즉, 설정이 활성화되어 있더라도 배너가 자주 표시되지 않는 것입니다.

또한, 배너를 활성화했다가 빠르게 비활성화하거나(또는 그 반대의 경우) 문제가 발생하는 것 같습니다.

개발자가 확인 결과 문제가 있는 것 같다고 하네요. 현재 조사 중입니다. 조금만 기다려 주세요.

앱에서 새로고침을 해도 이 문제가 계속되는 것이 좀 이상하네요 :thinking: 서버에서 이 값들을 저장할 때 여기에서 클라이언트로 MessageBus 메시지를 보내는데, 이 메시지는 반응형 UI를 업데이트해야 합니다:

https://github.com/discourse/discourse/blob/73d27587aa8a3e8a3e1dda2756c9e0b92b4a50804f68/app/assets/javascripts/discourse/app/instance-initializers/subscribe-user-notifications.js#L260-L271

하지만 어딘가에서 설정 값의 true/false가 뒤바뀐 것처럼 보입니다? 사이트의 rails 콘솔에서 다음을 실행해 보면 어떤 값이 보이는지 확인해 주시겠어요?

SiteSetting.theme_site_settings

다음과 같은 결과가 표시됩니다. 숫자는 테마 ID를 나타냅니다:

{1=>{:enable_welcome_banner=>false, :search_experience=>"search_icon"},
 -1=>{:enable_welcome_banner=>false, :search_experience=>"search_icon"},
 -2=>{:enable_welcome_banner=>false, :search_experience=>"search_field"}}

값을 토글(전환)해 보고 어떤 값이 나타나는지 확인해 보세요 (값을 변경할 때마다 rails 콘솔을 닫았다가 다시 열어야 합니다).

그 다음 이것도 시도해 보세요:

SiteSetting.theme_site_settings_json(THEME_ID)

여기서 THEME_ID를 문제가 있는 테마의 ID로 교체하면 됩니다.

수정: 이것이 호스팅 사이트에서 발생한 문제인 줄 몰랐네요. 제가 확인해 보겠습니다 :eyes:

현재 호스팅 사이트에서 해당 테마가 정상적으로 동작하는 것 같습니다. 다만 다음 내용은 흥미롭습니다:

일단 지켜보다가 계속 반복되는지 확인해 보는 것은 어떨까요? 또한 호스팅 사이트 관련 세부 사항을 더 논의하고 싶으시다면 저에게 사설(PM)을 보내 주세요.

다시 내가 망친 것 같아. 언제 고쳐질지는 모르겠어

Foundation 테마에서는 활성화되어 있지만 보이지 않고, 기본 테마에서는 비활성화되어 있지만 보여.

방금 사용자의 사이트에 로그인해 보았지만, 기본 테마(Default theme)에서는 해당 항목을 볼 수 없었습니다. 또한 /admin/customize/themes/1 경로에서 비활성화되어 있는 것을 확인했습니다. 해당 항목을 켜고 다시 끄자 다른 탭에서 표시되었다가 숨겨졌습니다.

Foundation 테마에서도 해당 항목을 볼 수 없었지만, 관리자 화면에서는 활성화되어 있습니다. 잠시만 기다려 주세요. 문제를 확인할 수 있는지 살펴보겠습니다.

흥미롭네요. 테스트 사용자 계정으로 로그인했을 때도 제가 확인이 가능했습니다. 아마 스스로 해결된 것 같습니다.

아, 새로고침을 했는데 제가 아무것도 안 했는데도 여기서는 자동으로 해결됐네요 :thinking:

우리는 각 테마별로 테마 사이트 설정을 30분 캐시로 캐싱합니다:

하지만 어떤 테마의 사이트 설정이 변경될 때마다 이 캐시가 의도적으로 비워져야 합니다:

그러니까 특정 엣지 케이스에서 이것이 발생하지 않는 건 아닐까요?

3시간 전에 기본 테마에서 배너를 다시 활성화해서 다음 업데이트 후에 어떤 일이 생길지 확인해 보았습니다. 처음에는 표시가 되었는데, 지금은 다시 사라졌습니다. 설정은 여전히 활성화되어 있습니다.

사이트 업데이트 당시의 상태를 선호하는 것 같습니다.

수정: 이제 배너가 다시 나타났습니다

수정2: 사라졌습니다

수정3: 다시 나타났습니다

수정4: 사라졌습니다

수정5: 다시 나타났습니다

Moin, 감사합니다… 이건 정말 예상치 못한 일인데, AFAIK(제가 아는 한) 아직까지 이 문제를 경험한 사람은 당신뿐인 것 같습니다. 문제를 재현해볼 수 있는지 확인하기 위해 제 테스트 사이트를 만들어 변경 사항을 적용하고 배포해 보겠습니다. 그러면 문제를 추적하는 데 도움이 될 수도 있을 것 같습니다.

특히 UI 자체가 계속 왔다 갔다 한다는 점을 고려하면, 확실히 캐싱 문제인 것 같은 느낌이 듭니다. 하지만 관리자 화면에서는 해당 설정이 여전히 활성화되어 있는 것을 볼 수 있습니다.

특히 첫 번째 변경 사항이 제대로 작동하지 않는 것 같습니다.
어제 Foundation에서 배너를 활성화했는데, 약 25분 후에 배너가 표시되었습니다. 이는 말씀하신 약 30분 정도와 일치합니다.
이제 다시 시도해 보았습니다. Foundation에서 비활성화하니 배너가 사라졌지만, 새로고침 후 다시 나타났습니다. 제 사용자 계정만의 문제가 아닙니다. 항상 개인 탭에서 테스트 계정으로 확인하고 있습니다. 하지만 30분 후에도 여전히 표시됩니다.

업데이트: 이제 사라졌습니다. 따라서 약 1시간이 걸린 것입니다.

글을 올린 지 30분이 지났기 때문인지는 잘 모르겠어요:

image

아니면 사이트 콘솔에서 이것을 실행하면서 무언가를 변경한 것일 수도 있어요:

SiteSetting.theme_site_settings_json(-1)
=> "{\"enable_welcome_banner\":false,\"search_experience\":\"search_field\"}"

하지만 분명히 표시되는 것을 보고 콘솔에서 그걸 실행했는데, 그 후에는 사라져 있었어요 :sweat_smile: 확실히 캐싱 문제인 것 아요…

아직까지 제 호스팅 사이트에서는 배포를 통해서도 재현이 되지 않습니다. 이 문제는 좀 까다롭네요!

관련이 있을지 모르겠지만, 테마 설정 가능한 사이트 설정이 출시되었을 때 '환영 배너 활성화’를 비활성화해 두었습니다. 그래서 기본 설정과 값이 달랐습니다. 이것이 차이의 원인일까요? 지금 포럼을 새로 만들면 값에 이력이 없고, 그냥 기본값만 적용됩니다.