Django-compressor: خطأ في الضغط دون اتصال

تم إنشاؤها على ٢٥ سبتمبر ٢٠١٣  ·  6تعليقات  ·  مصدر: django-compressor/django-compressor

لقد أمضيت أسبوعًا في تصحيح هذا الخطأ (أسبوعان منفصلان مختلفان) وأشعر بالإحباط الشديد. أعتقد أنني قد قرأت كل مقالة / منشور / مشكلة تقريبًا ، ولا أعرف ماذا أفعل. لدي كل من خادم مرحلي وخادم إنتاج (لكل منهما حاويات s3 منفصلة) وهذا يعمل على التدريج ، ولكن ليس الإنتاج ، على الرغم من أن الخوادم (في Heroku) والمستودعات متطابقة.

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

هل لدى أي شخص ضغط يعمل دون اتصال بالإنترنت تم إعداده في الإنتاج في أي مكان للنظر إليه؟ مع ضغط offfline = False - يوجد حمل إضافي كبير على الخادم ، غالبًا ما يكون تأخيرًا إضافيًا قدره 300-500 مللي ثانية ، والذي من الواضح أنه لا يستحق كل هذا العناء ويتعارض مع الغرض الكامل من هذه الحزمة.

يمكنني حقًا استخدام بعض المساعدة ، لكن ليس لدي أي فكرة بشكل أساسي عما يجب فعله في هذه المرحلة ، لأن المشكلة نفسها التي يمكنك قراءتها مع مئات الأشخاص في قائمة المشكلات هنا ، في منشورات المدونة في مكان آخر ، ولا يبدو أن هناك حلًا قابلًا للتكرار يتم اقتراحها - وهي مشكلة كبيرة لشيء مهم للأداء وربما يتطلب أي نشر لـ Django.

deployment

التعليق الأكثر فائدة

في الأيام الماضية كنت مشغولاً في حل نفس المشكلة ، وإليكم ما كان الحل ، في حال كان يساعد شخصًا ما.

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

حاول عزل أجزاء جافا سكريبت حيث تعتمد على السياق في كتلة أخرى خارج علامة الضغط.

نأمل أن تساعد هذه المعلومات شخصًا ما.

ال 6 كومينتر

نفس الشيء هنا. يبدو أن COMPRESS_OFFLINE من django_compressor تسبب مشاكل أكثر من الحلول. لا يمكنني تشغيله لأنني أتلقى مثل هذه الرسائل:

OfflineGenerationError: You have offline compression enabled but key "%s" 
is missing from offline manifest. You may need to run "python manage.py compress".

نفس الشيء هنا :/

لا يمكن الحصول على الضغط دون اتصال للعمل. استمر في الحصول على OfflineGenerationError.

لذلك تأكدت من تشغيل ما يلي أثناء كل نشر على جميع خوادم الويب

python management.py compress --force
python management.py collectstatic

يجب أن يؤدي ذلك إلى تحديث ملف manifest.json. أتأكد أيضًا من اختلاف اسم ملف البيان مع كل دفعة. مثل إضافة رقم الإصدار. البيان_٪ s.json
أستخدم أحدث معرف تجزئة git الالتزام بالمكون الإضافي٪ s. لذلك أثناء النشر ، يقوم الأمر بسحب git ، وضغطه ، وتجميعه ، وإنشاء css / js جديدة مصغرة / مجمعة باستخدام ملف manifest.json جديد.
ثم أعد تشغيل اباتشي. لذلك يجب أن يكون كل شيء على نحو سلس.

كما أنني تأكدت من أن collectstatic لا يستدعي - واضح ، لحذف الوسائط الثابتة / * القديمة.

منطقي؟

حسنا لدي نفس المشكلة بالضبط.
هل يقوم أي شخص بتشغيل هذا دون اتصال بالإنترنت من S3 بطريقة موثوقة؟

في الأيام الماضية كنت مشغولاً في حل نفس المشكلة ، وإليكم ما كان الحل ، في حال كان يساعد شخصًا ما.

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

حاول عزل أجزاء جافا سكريبت حيث تعتمد على السياق في كتلة أخرى خارج علامة الضغط.

نأمل أن تساعد هذه المعلومات شخصًا ما.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات