عتبة تغيير حجم صورة Composer

متابعة النقاش من تحسين الصور من جانب العميل مفعل افتراضيًا:

أنا المسؤول عن نسخة Discourse مستضافة ذاتيًا لصور محلية حيث نقوم برفع وسائط عالية الجودة في الغالب. أود تغيير عرض الصورة الافتراضي في المصمم ليتم تقليصه إليه، لكنني لا أراه في أي مكان ضمن الإعدادات.

أخبرني بوت الأسئلة أن أبحث عن composer media optimization image resize dimensions threshold، لكنني أتساءل عما إذا كان هذا الإعداد قد تم إيقافه أو إخفاؤه، لأن الإعداد الوحيد الذي أستطيع العثور عليه هو composer media optimization image enabled.

ببساطة، أريد فقط أن يتم تقليص الصور المرفوعة عبر المصمم إلى عرض أقصى قدره 1440 بكسل بدلاً من 1920 بكسل، وربما أن يكون هناك خيار لتقليص الجانب الأطول من الصورة فقط (على سبيل المثال، يجب تقليص الصورة العمودية بناءً على ارتفاعها بدلاً من عرضها).


الإصدار 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) نجح، لذا أعيدت بناء التطبيق على أي حال، ولم يُحدث ذلك فرقًا أيضًا. لا تزال الصور تُقلَّص إلى 1920 بكسل.

/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

يبلغ الدقة الأصلية لهذه الصورة 3089×2048، وفيما يلي ما تم تغيير حجمها إليه بعد رفعها للتو كاختبار.

يُتحكَّم في وقت تفعيل composer_media_optimization_image_resize_dimensions_threshold من خلال هذه القيمة.

إذا كنت ترغب في تغيير حجم الصورة إلى 1440، فيجب عليك تعيين هذه القيمة كـ composer_media_optimization_image_resize_width_target.

حسناً، لا توجد نتيجة.

لقد قمت بتعيين كلا القيمتين إلى 1440، ثم قمت لأغراض الأمان بتشغيل الأمر /var/discourse/launcher rebuild app، لكن الصور لا تزال تُعاد تحجيمها إلى 1920.

تعديل: في الواقع، بعد إعادة البناء ثم العودة إلى rails، عاد المتغيران إلى حالة غير معرفة. هل من الممكن أن يكون هناك شيء ما يعيد تعيينهما إلى القيم الافتراضية؟

في الواقع، حتى بعد الخروج من 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 بدلاً من ذلك، أليس كذلك؟

أيضًا، أفهم ما تقصده بشأن القدرة على العمل على البعد الآخر. كان التركيز على العرض فقط حلًا وسطًا عند بنائي الأول لهذا، نظرًا لوجود عدد كبير جدًا من أزرار التبديل بالفعل. في السنوات الأخيرة، حتى فريقنا أخفى الإعداد هذا أكثر، لذا من الصعب طلب المزيد منه.

ربما نغيره ليعمل على أكبر جانب، مع اختيار العرض أو الارتفاع ديناميكيًا؟