تبدو عناوين URL للرموز التعبيرية المدمجة على هذا النحو: https://thrivecommunity-cdn.b-cdn.net/images/emoji/twitter/thinking.png?v=9
لذا فإن استنتاجي هو أنه قد يكون هناك خطأ في معالجة الرموز التعبيرية المخصصة عند إنشاء روابط الصور، مما يتجاوز استخدام شبكة توصيل المحتوى (CDN) المكونة لتكون أمام الملفات المخزنة في S3.
حاولت العثور على مواضيع ذات صلة، لكنني وجدت فقط هذا: Custom Emoji does not use Amazon S3 والذي يبدو قديمًا، حيث أن discourse يحاول استخدام S3 لتقديم الرموز التعبيرية المخصصة في موقعي.
إذن، الإيموجي القياسية تستخدم شبكة توصيل محتوى (CDN) واحدة بينما الإيموجي المخصصة تستخدم أخرى، لكن كلاهما مغطى بشبكة التوصيل إذا قمت بإعدادات صحيحة تلتزم حرفياً بـ استخدام التخزين الكائني للرفع (نسخ S3).
ليست عيبًا، بل هذا السلوك متوقع لأن الإيموجي القياسية مُخزَّنة داخل كود التطبيق، بينما الإيموجي المخصصة هي مجرد رفع عادي للموقع.
واجهتُ مشكلة مشابهة (لم يتم تحديد المنشورات التي تحتوي على رموز تعبيرية مخصصة لإعادة المعالجة أثناء الترحيل إلى S3 إذا لم تكن هناك تحميلات أخرى في نص المنشور الخام، وبالتالي فإن الرابط المعالج لم يكن يشير إلى CDN).
تمكنت من حل المشكلة عن طريق حذف وإعادة تحميل إحدى الرموز التعبيرية المخصصة فقط، مما أدى تلقائيًا إلى تشغيل مهمة أعادت بناء جميع المنشورات التي تحتوي على رموز تعبيرية مخصصة (ولكنني متأكد من وجود أيضًا مهمة rake يمكن استخدامها لإعادة معالجة المنشورات التي تحتوي على رموز تعبيرية مخصصة مباشرة).
أرى المشكلة في admin/customize/emojis وكذلك في معاينة محرر المنشورات، كما أن ردود الفعل (Retort reactions) على المنشورات التي نُشرت خلال الساعة الماضية تفشل.
إذن، هذه المشكلة لا تؤثر فقط على المنشورات القديمة التي تستخدم الرموز التعبيرية، بل أيضًا على المنشورات الجديدة وأجزاء من واجهة المستخدم (حيث يستخدم مختار ردود الفعل Retort reaction picker عنوان URL خاطئًا مثل منطقة إدارة الرموز التعبيرية في لوحة الإدارة).
إذن هو كذلك. إذا قمت بالنشر فعليًا، فإن رمز التعبيرات (الإيموجي) سيظهر بشكل صحيح فيه.
إذا كان إصلاح إضافة Retort مشابهًا لكيفية إصلاح منطقة المسؤول، فقد أجرب إصلاح الإضافة لأن رموز التعبيرات المخصصة تُستخدم على نطاق واسع في مثيل Discourse الخاص بي.
حاولت إصلاح هذا بنفسي بعد إلقاء نظرة سريعة. يبدو أن المشكلة تكمن في أن طريقة JavaScript الخاصة بـ Discourse buildEmojiUrl تستقبل عنوان URL الخاص بالتخزين بدلاً من عنوان URL الخاص بشبكة CDN للرموز التعبيرية المخصصة. وهذا يبدو هو نفسه ما يستخدمه إضافة retort. لذا، بإصلاح ذلك، من المرجح أن يتم حل جميع المشاكل، أليس كذلك؟
بعد هذه النظرة السريعة، وجدت مكانًا يبدو أنه يبني عناوين URL للرموز التعبيرية المخصصة وقمت بتغييره إلى هذا:
اختبرت الأمر عبر وحدة تحكم Rails، ويبدو أن ذلك يصلح عناوين URL في موقعي الإنتاجي. لذا، حاولت نشر هذا التغيير هناك، لكنه لم ينجح. بعد أن لم ينجح ذلك، حاولت أيضًا تغيير EMOJI_VERSION إلى 10 لمحاولة تحديث شيء ما، لكن هذا أيضًا لم ينجح. عندما أقوم بتشغيل launcher enter وأعرض سجل git، أرى تعديلي هناك. لقد اتبعت النهج الوارد هنا: