Composer 이미지 리사이즈 임계값

Client side image optimization enabled by default에서 이어지는 토론입니다:

저는 지역 사진작가들을 위한 자체 호스팅 Discourse 인스턴스의 관리자입니다. 주로 고품질 미디어를 업로드합니다. 컴포저(composer)의 기본 이미지 너비를 축소할 크기로 변경하고 싶지만, 설정에서 해당 옵션을 어디에도 찾을 수 없습니다.

Ask bot은 composer media optimization image resize dimensions threshold 설정을 찾아보라고 알려주었지만, 이 설정이 비활성화(deprecated)되었거나 숨겨진 것 같습니다. 제가 찾을 수 있는 유일한 설정은 composer media optimization image enabled입니다.

결국 제가 원하는 것은 컴포저로 업로드된 이미지가 1920px 대신 최대 너비 1440px로 리사이즈되도록 하는 것이며, 가능하면 이미지의 긴 변만 리사이즈하는 옵션(예: 세로 이미지는 너비가 아닌 높이를 기준으로 리사이즈)도 있으면 좋겠습니다.


Version 2026.5.0-latest ( af1090fa6f )

이것은 숨겨진 설정이므로 rails 콘솔에서 변경할 수 있습니다.

하지만 여기에도 추가되어야 한다고 생각합니다:

변경하려면:

cd /var/discourse
./launcher enter app
rails c
SiteSetting.composer_media_optimization_image_resize_dimensions_threshold = 1440
exit

이 변경 사항을 적용한 후 앱을 다시 빌드해야 하나요?

아니요, 하지만 페이지를 새로고침해야 합니다.

제가 제대로 설정했는지 확인할 수 있는 방법이 있을까요? 하드 리프레시(Ctrl+F5)를 해봤는데 효과가 없었고, 그래서 어쨌든 앱을 다시 빌드해 봤지만 역시 차이가 없었습니다. 이미지는 여전히 1920px로 축소되고 있습니다.

/var/www/discourse# rails c
Loading production environment (Rails 8.0.5)
discourse(prod)> SiteSetting.composer_media_optimization_image_resize_dimensions_threshold
=> 1440

사이트 설정을 변경할 때 보통 재시작을 합니다

./launcher restart app

다시 rails 콘솔에서, SiteSetting.composer_media_optimization_image_resize_dimensions_threshold를 입력하면 어떤 값이 반환됩니까?

저는 이 특정 변경 사항을 테스트해 보았고, 업데이트되었습니다.

1440을 반환합니다.

이 이미지의 원래 해상도는 3089x2048이며, 방금 테스트로 업로드했을 때 리사이즈된 결과가 다음과 같습니다.

composer_media_optimization_image_resize_dimensions_threshold은 트리거가 발생하는 시점을 제어합니다.

이미지를 1440으로 리사이즈하려면 해당 값을 composer_media_optimization_image_resize_width_target으로 설정해야 합니다.

음, 안 되네.

이 두 값을 모두 1440으로 설정한 뒤, 안전을 위해 /var/discourse/launcher rebuild app을 실행했지만 이미지는 여전히 1920으로 리사이즈되고 있습니다.

수정: 실제로 재빌드(rail)를 한 후 다시 rails로 돌아가니 두 변수가 다시 정의되지 않은 상태(undefined)로 돌아와 있습니다. 무언가가 이 변수들을 기본값으로 덮어쓰고 있는 걸까요?

실제로 rails에서 나와서 다시 들어와도 다음과 같은 메시지가 표시됩니다:

discourse(prod)> composer_media_optimization_image_resize_dimensions_threshold
(discourse):1:in '<main>': undefined local variable or method 'composer_media_optimization_image_resize_dimensions_threshold' for main (NameError)

설정을 확인하는 방법이 아닙니다. 사이트 설정 이름 앞에 SiteSetting.을 붙여야 합니다.

드디어 해결됐어요! 근데 해상도 비율을 완전히 잘못 계산하고 있었네요. 머릿속에서는 1440p를 높이로 생각하고 있었는데, 사실은 너비였거든요 :stuck_out_tongue: 그래서 이미지가 오히려 이전보다 더 작게 나오자 정말 놀랐습니다.

너비에 대한 토글만 있으니, 아마도 2560을 의미하는 것이 맞죠?

다른 차원에 대해 작업할 수 있는 기능에 대해서는 공감합니다. 처음 이 기능을 만들었을 때 너비만 처리하도록 한 것은 타협이었습니다. 이미 토글이 너무 많기 때문이죠. 최근 몇 년간 우리 팀은 해당 설정을 더 깊숙이 숨겼기 때문에, 거기서 더 많은 기능을 요청하는 것은 까다로운 문제입니다.

가장 긴 변을 기준으로 동작하도록 변경해서, 너비 또는 높이를 동적으로 선택하는 방식으로 바꿔볼까요?

네, 지금 2560으로 설정했는데 잘 작동합니다.

우리 이미지 중 상당수가 세로 방향(포트레이트)이라 업로드 전에 리사이즈하지 않으면 비례가 맞지 않게 너무 크게 보이거든요. 긴 변을 기준으로 동적으로 선택해 주는 기능이 있으면 제게 도움이 될 것 같습니다.

도움 주셔서 감사합니다!

컴포저가 이미지를 리사이즈하는 것을 우회할 수 있는 알려진 방법이 있나요?

사용자 중 한 명이 새 주제에 8개의 이미지를 업로드했는데, 그중 3개만 예상대로 2560px으로 리사이즈되었고 나머지 5개는 원래 해상도로 남아 있는 것 같습니다.