خطأ التكوين كوليكتستاتيك عند نشر جانغو التطبيق مع دوكو

StackOverflow https://stackoverflow.com//questions/25039395

سؤال

عند نشر التطبيق جانغو باستخدام دوكو أنا الحصول على الخطأ التالي

Collectstatic configuration error. To debug, run:
$ heroku run python ./manage.py collectstatic --noinput

لم أجد طريقة للركض heroku run python ./manage.py collectstatic --noinput لحاوية دوكو ، ولكن عندما أحاول dokku run my app python ./manage.py collectstatic --noinput, ، يتم نسخ الملفات الثابتة بنجاح إلى STATIC_ROOT مجلد ولا توجد رسالة خطأ معينة.

يمكنني حل المشكلة عن طريق وضع collectstatic القيادة في Procfile:

web: python manage.py collectstatic --noinput ; gunicorn myapp.wsgi

ومع ذلك ، أود أن أعرف ما الذي تسبب في المشكلة وكيف يمكن تصحيحها.أي أفكار?

هل كانت مفيدة؟

المحلول

يجب أن يكون لديك أربعة إعدادات في settings.py ملف يسمى MEDIA_ROOT, MEDIA_URL, STATIC_ROOT و STATIC_URL.

أنا وضعت الألغام مثل ذلك:

MEDIA_ROOT = 'media' STATIC_ROOT = 'static' MEDIA_URL = '/media' STATIC_URL = '/static'

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

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

منذ جيت لا يسمح لك لارتكاب مجلد فارغ (يرتكب فقط الملفات) ، أفعل ما يلي في مشاريعي:

mkdir media static touch media/.dir touch static/.dir git add media/.dir static/.dir git commit -m 'Make media and static directories'

الأمر 'اللمس' بإنشاء ملف فارغ ، ثم كنت 'بوابة إضافة' اثنين من الملفات التي تم إنشاؤها حديثا والتحقق منها في.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top