Django-compressor: لا يجلب Django الملفات المضغوطة عند ضبط تصحيح الأخطاء على False

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

لذلك حصلت على ضاغط django يعمل في التطوير باستخدام Debug = False. ومع ذلك ، بمجرد تعيين Debug = True ، يبدو أن django-compressor ينشئ عناوين URL والملفات وكل شيء الصحيح ، لكن Django نفسه يُرجع 404 لتلك الملفات.

أملك

STATIC_ROOT = os.path.join(PROJECT_DIR, "static_media")

وداخل مجلد static_media في مشروعي ، يمكنني بالفعل رؤية ملف CACHE / css / bfdeac875f7a.css الذي تم إنشاؤه بواسطة الضاغط.

داخل ملف HTML الذي تم إنشاؤه ، يمكنني أيضًا رؤية ملفات

<link rel="stylesheet" href="/static/CACHE/css/bfdeac875f7a.css" type="text/css" />

ولكن عند تحميل الصفحة ، يقول runserver:

[21/Dec/2012 22:28:44] "GET /static/CACHE/css/bfdeac875f7a.css HTTP/1.1" 404 276

هل فاتني شيء؟ فعلت مسبقا

  • تمت إضافة 'django.core.context_processors.static', إلى TEMPLATE_CONTEXT_PROCESSORS
  • تمت إضافة 'compressor.finders.CompressorFinder', إلى STATICFILES_FINDERS
  • تمت إضافة 'compressor', إلى INSTALLED_APPS

شكرا!

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

آسف ، لا أصدق أنني فاتني ذلك سابقًا: لقد قرأت بطريقة ما أنك واجهت مشاكل عندما يكون DEBUG _True_.

على أي حال. عندما DEBUG = False ، سيرفض خادم التشغيل الخاص بك ، افتراضيًا ، خدمة الملفات الثابتة نفسها ، بسبب مشكلات الأداء والأمان. هذا لمنعك من استخدام هذا في الإنتاج. لتكون قادرًا على اختبار الملفات الثابتة بشكل صحيح محليًا عندما يكون DEBUG خطأ ، فأنت بحاجة إلى تمرير علامة --insecure إلى خادم التشغيل ، كما هو موثق هنا: https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/ #django -admin-option --- غير آمن

هل هذا يحل مشكلتك؟

ال 5 كومينتر

أهلا،

سنحتاج إلى مزيد من المعلومات حول الإعداد الخاص بك لمساعدتك:

  • إعدادات COMPRESS_ * ، ​​إعداد STATIC_URL ، إعدادات STATICFILES_ *
  • هل الملفات الثابتة موجودة في INSTALLED_APPS؟
  • ما هي نسختك من Django؟
  • هل تعمل الملفات الثابتة الأخرى بشكل صحيح؟ أنت تستخدم runserver لخدمتهم ، أليس كذلك؟

شكرا

أهلا،

أنا أستخدم Django 1.4.3 بالإعدادات التالية:

...

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = os.path.join(PROJECT_DIR, "static_media")

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(PROJECT_DIR, "static"),
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
    'compressor.finders.CompressorFinder',
)

COMPRESS_PRECOMPILERS = (
    ('text/coffeescript', 'coffee --compile --stdio'),
    ('text/x-scss', 'sass --scss {infile} {outfile}'),
)

...

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    # 'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    ...
    'compressor',
    ...
)

...

لا يمكن الوصول إلى الملفات التي وضعتها يدويًا داخل static_media من عنوان url /static/ أيضًا ، لذلك لا بد أنني لم أقم بتكوين الملفات الثابتة بشكل صحيح ... لقد قمت أيضًا بالترحيل من Django 1.3 ، إذا كان هذا مهمًا. هل سيكون لديك حدس فيما يجب أن أحاول؟

أيضًا ، يجلب خادم التشغيل بنجاح الملفات الموجودة في مجلد static_media عندما يكون التصحيح صحيحًا ، لكنه يفشل عندما يكون خطأ ...

آسف ، لا أصدق أنني فاتني ذلك سابقًا: لقد قرأت بطريقة ما أنك واجهت مشاكل عندما يكون DEBUG _True_.

على أي حال. عندما DEBUG = False ، سيرفض خادم التشغيل الخاص بك ، افتراضيًا ، خدمة الملفات الثابتة نفسها ، بسبب مشكلات الأداء والأمان. هذا لمنعك من استخدام هذا في الإنتاج. لتكون قادرًا على اختبار الملفات الثابتة بشكل صحيح محليًا عندما يكون DEBUG خطأ ، فأنت بحاجة إلى تمرير علامة --insecure إلى خادم التشغيل ، كما هو موثق هنا: https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/ #django -admin-option --- غير آمن

هل هذا يحل مشكلتك؟

يا إلهي ، يا سيئة. كنت قد غيرت عن غير قصد "صواب" و "خطأ" في سؤالي الأصلي ، آسف للارتباك!

وشكرا جزيلا ، هذا يحل المشكلة!

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