لذلك حصلت على ضاغط 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
شكرا!
أهلا،
سنحتاج إلى مزيد من المعلومات حول الإعداد الخاص بك لمساعدتك:
شكرا
أهلا،
أنا أستخدم 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 --- غير آمن
هل هذا يحل مشكلتك؟
يا إلهي ، يا سيئة. كنت قد غيرت عن غير قصد "صواب" و "خطأ" في سؤالي الأصلي ، آسف للارتباك!
وشكرا جزيلا ، هذا يحل المشكلة!
التعليق الأكثر فائدة
آسف ، لا أصدق أنني فاتني ذلك سابقًا: لقد قرأت بطريقة ما أنك واجهت مشاكل عندما يكون DEBUG _True_.
على أي حال. عندما DEBUG = False ، سيرفض خادم التشغيل الخاص بك ، افتراضيًا ، خدمة الملفات الثابتة نفسها ، بسبب مشكلات الأداء والأمان. هذا لمنعك من استخدام هذا في الإنتاج. لتكون قادرًا على اختبار الملفات الثابتة بشكل صحيح محليًا عندما يكون DEBUG خطأ ، فأنت بحاجة إلى تمرير علامة --insecure إلى خادم التشغيل ، كما هو موثق هنا: https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/ #django -admin-option --- غير آمن
هل هذا يحل مشكلتك؟