Django-compressor: Django не получает сжатые файлы, если для параметра Debug установлено значение False

Созданный на 22 дек. 2012  ·  5Комментарии  ·  Источник: django-compressor/django-compressor

Итак, я получил django-компрессор, работающий в разработке с Debug = False. Однако, как только я установил Debug = True, кажется, что django-компрессор генерирует правильные 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" />

но когда страница загружается, сервер запуска говорит:

[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 имеет значение False, вам необходимо передать флаг --insecure на сервер запуска, как описано здесь: https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/ #django -admin-option --- небезопасно

Это решит вашу проблему?

Все 5 Комментарий

Привет,

Нам понадобится немного больше информации о вашей настройке, чтобы помочь вам:

  • Ваши настройки COMPRESS_ *, настройки STATIC_URL, настройки STATICFILES_ *
  • Есть ли статические файлы в вашем INSTALLED_APPS?
  • Какая у вас версия Django?
  • Остальные статические файлы работают правильно? Вы ведь используете их на сервере, верно?

Спасибо

Привет,

Я использую 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, если это имеет значение. Не могли бы вы догадаться, что мне следует попробовать?

Кроме того, runserver успешно извлекает файлы из моей папки static_media когда Debug имеет значение true, но терпит неудачу, когда оно false ...

Извините, не могу поверить, что пропустил это раньше: я как-то читал, что у вас проблемы, когда DEBUG _True_.

В любом случае. Если DEBUG = False, ваш сервер выполнения по умолчанию откажется обслуживать статические файлы из-за проблем с производительностью и безопасностью. Это сделано для того, чтобы вы не могли использовать это в производственной среде. Чтобы иметь возможность правильно тестировать свои статические файлы локально, когда DEBUG имеет значение False, вам необходимо передать флаг --insecure на сервер запуска, как описано здесь: https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/ #django -admin-option --- небезопасно

Это решит вашу проблему?

О боже, как же плохо. Я случайно переключил "True" и "False" в моем первоначальном вопросе, извините за путаницу!

И большое спасибо, что проблема решена!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

camilonova picture camilonova  ·  7Комментарии

dasloss picture dasloss  ·  6Комментарии

ghost picture ghost  ·  20Комментарии

polmuz picture polmuz  ·  20Комментарии

jvc26 picture jvc26  ·  4Комментарии