странное поведение статического файла django

Я получаю 404 для статических файлов, когда DEBUG=False в моих настройках. Файл обслуживается нормально, когда DEBUG=True.

Я смотрю на документы, и все мои конфиги кажутся мне в порядке.

# my_settings.py
STATIC_ROOT = os.path.join(PROJECT_PATH, 'static')

STATIC_URL = '/static/`

затем я запускаю collectstatic --settings=my_settings и ls static, чтобы убедиться, что файлы собраны. Она имеет:

ls ls static/css/core.css
# (its there).

Но когда мы запрашиваем «localhost:8000/static/css/core.css», мы получаем 404.

Обратите внимание, что запуск python manage.py findstatic css/core.css --settings=my_settings не позволяет найти файл. Когда я делаю DEBUG=True и запускаю findstatic, он находит файл, но в статическом каталоге вспомогательного приложения, а не в собранном каталоге (STATIC_ROOT).

Обратите внимание, что у меня есть:

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

а "статические файлы" находятся в моем INSTALLED_APPS.

Джанго 1.6


person rich tier    schedule 15.11.2014    source источник
comment
Возможный дубликат: stackoverflow.com/questions/6619464/ Обслуживание статических файлов включено по умолчанию только в режиме разработки.   -  person Benjamin Atkin    schedule 15.11.2014


Ответы (1)


Поскольку вы указали DEBUG = FALSE в настройках, теперь он остается на HTTP-сервере, таком как nginx или apache, для обслуживания статических файлов. Вам необходимо настроить веб-сервер для обслуживания статических файлов. Пример для apache можно найти здесь .

person Sudip Kafle    schedule 15.11.2014