Сервер разработки Django ВСЕ ЕЩЕ не будет обслуживать статические файлы

Ладно все. Я знаю, что это вопрос, который многие люди решали в разных случаях, но я не могу на всю жизнь заставить свой сервер разработки Django 1.9 обслуживать статический контент на моем локальном компьютере. Статические файлы отлично работали перед развертыванием, и вполне подходят для моего сервера развертывания, но теперь в моей тестовой среде (локальный компьютер с runserver собирается) все сломано, и мне действительно нужно иметь возможность тестировать таблицы стилей в среде разработчика.

Я испробовал все эти решения и многое другое, следуя руководству по документации, использовал collectstatic снова в репо разработки... ничего не сработало, и я в своем уме.

В настоящее время у меня есть DEBUG = True и следующие настройки:

Папка Иерархия

project/
   manage.py
   (&c)
   app/
     urls.py
     models.py
     (&c)
   project/
     settings.py
     urls.py
     (&c)
   static/
     styles/
     images/
     (&c)

settings.py Настройки статических файлов

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

STATICFILES_DIRS = (
    os.path.join(STATIC_ROOT, 'styles/'),
    os.path.join(STATIC_ROOT, 'js/'),
    os.path.join(STATIC_ROOT, 'audio/'),
    os.path.join(STATIC_ROOT, 'images/'),
    os.path.join(STATIC_ROOT, 'admin/'),
    os.path.join(STATIC_ROOT, 'documents/'),
)

urls.py Шаблоны URL

from django.conf.urls import include, url, patterns
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin

urlpatterns = [
    # ... project url patterns blah blah ...
]

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += patterns('', (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root':settings.STATIC_ROOT, 'show_indexes': True}))

у меня тоже есть {% load staticfiles %} в моих шаблонах вместе с соответствующими {% static %} звонки (например: {% static 'styles/main.css' %}).

Для справки, командная строка дает мне следующее при загрузке страницы:

"GET /static/styles/main.css HTTP/1.1" 404 1759

Если кто-нибудь знает о том, что я пропустил исправление, которое может даже привести к тому, что снежный ком может сработать, сообщите мне. Это сводит меня с ума, потому что я не могу проверить должным образом.

РЕДАКТИРОВАТЬ: Как предложено, я обновился до Django 1.11 на моем локальном компьютере, без изменений в текущей проблеме.

2 ответа

Можете ли вы попытаться создать переменную STATIC_ROOT с абсолютным путем и проверить, работает ли она?

Может быть, конструкция этого вар не в порядке.

Вы также можете проверить переменную STATIC_ROOT через

python manage.py shell

и посмотрите, правильно ли он подходит к вашему пути.

Я не могу проверить это, но, возможно, попробуйте изменить это:

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

к этому:

STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

Кстати, версия 1.9 не поддерживается, а также представляет угрозу безопасности. Возможно, вы захотите перейти на другую версию.

Другие вопросы по тегам