كيفية جمع جميع الأصول الثابتة (js, css) المستخدمة بواسطة discourse

شكرًا جزيلاً لك. لقد لاحظت أيضًا أن بعض الأصول الثابتة (مثل CSS) يتم وضعها في /var/www/discourse/tmp/stylesheet-cache. لكن هناك مشكلتان أخريان:

  1. يقوم المستخدمون برفع أصول مثل الصور الرمزية (avatars) والتي يتم تقديمها عبر CDN بعد إعداد DISCOURSE_CDN_URL. ومع ذلك، يبدو أن دفع الأصول المرفوعة إلى GitHub بعد كل مرة يرفع فيها المستخدم شيئًا ليس حلاً مثاليًا.
  2. عندما يطلب Discourse صورة رمزية للمستخدم مثل 2_2.png، فإنه يقوم بما يلي: 1) تقسيم اسم الملف، 2) إجراء بعض الفحوصات، 3) حساب اسم الملف الفعلي باستخدام التجزئة (hashing). إذا كنت بحاجة إلى تقديم صور رمزية للمستخدمين، فسأضطر إلى تنفيذ نفس المنطق بنفسي نظرًا لعدم وجود ملف باسم 2_2.png.

حلّي النهائي بسيط. 1) أضفت Nginx أمام منتداي مثل هذا المنشور. 2) قمت بجمع جميع الأصول الثابتة من المسار المذكور أعلاه ودفعها إلى GitHub. 3) في ملف إعدادات Nginx، أضفت بعض القواعد مثل:

location ~/(stylesheets|assets) {
    return 301 https://cdn.jsdelivr.net/gh/my_github/my_repo/$request_uri;
}

شكرًا مرة أخرى @schleifer