ما هو الأمر/العملية التي تبني الأصول المضمنة؟

ما هي العملية التي تنشئ أصول ورقة الأنماط أثناء البناء، على سبيل المثال /stylesheets/color_definitions_dark_1_1_603243e2b6c0b7xydx234the00538538bd705.css

أفترض أن هذه هي عملية التجميع؟

ما الذي قد يكون خاطئًا إذا كانت هذه مفقودة؟

هل يجب أن تبدأ هذه في الوجود كجزء من بدء تشغيل خادم ember-cli أو خادم rails؟

ما هو النهج الذي يجب أن أتخذه لبناء هذه في docker من صورة discourse القياسية أم يجب أن أتوقع وجودها بمجرد تشغيل الخوادم؟

يتم بناء أوراق الأنماط بواسطة تطبيق rails عند الطلب، لذلك من الناحية النظرية لا تحتاج إلى القيام بأي شيء يدويًا.

سيؤدي تشغيل bin/rake assets:precompile إلى تجميعها بحماس، مما قد يكون مفيدًا إذا كنت ترغب في إنشاء صورة Docker محسّنة للنشر على مضيفين متعددين.

شكرا ديفيد، هذا يضيق نطاق تحقيقي بشكل جيد

آها! لطالما تساءلت عن ذلك.

إذا كانت على S3 وتم تجميعها عند الطلب، فهل يتم تحميلها أيضًا إلى S3؟

الأصول المجمعة عند الطلب (مثل أوراق الأنماط، و JavaScript الخاص بالمظهر، و SVG-sprites) لا يتم تحميلها إلى S3. يتم جلبها مباشرة من التطبيق (أو عبر CDN_URL، إذا تم تكوينها).

الأشياء الثابتة مثل JavaScript الأساسي/الإضافي والمحليات يتم إنشاؤها بواسطة assets:precompile، وهي مضمونة ألا تتغير أبدًا في وقت التشغيل.

أرى؛ هذا يساعد في تفسير سبب تقديم بعض الأشياء بواسطة التطبيق. إذا كان هناك حاويات متعددة قيد التشغيل (على سبيل المثال، خلف موازن تحميل)، فسيقوم كل منها بإنشاء هذه عند الطلب.

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

وإذا كانت هناك شبكة توصيل محتوى (CDN)، فقد لا يحتاجون حتى إلى ذلك، على ما أعتقد.

أنا أعمل مع شخص يبدو أن لديه مشكلة في عدم تحميل بعض الأصول (بعض الأيقونات تظهر كبيرة جدًا) وأبحث عن بعض التوضيح.