Статические файлы Django не загружаются с проверенной правильной настройкой

Я использую Django 1.4 с Python 2.7 на Ubuntu 12.10. Я работаю в команде разработчиков, и, кажется, что-то изменилось со вчерашнего дня на сегодняшний день, и я не могу загружать статические файлы локально с помощью runserver. У нас есть среда разработки, которая работает нормально. Все другие локальные среды разработчиков работают нормально. Наша производственная среда работает нормально. Мы, как команда, немного в тупике и надеялись, что сообщество сможет пролить свет на проблему.

Вот соответствующие части проекта:

проект.urls

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

проект.settings.dev

from __init__ import *

DEBUG = True
TEMPLATE_DEBUG = True

проект.настройки

PROJECT_ROOT = os.path.join(os.path.dirname(__file__), '..')
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
STATIC_URL = '/static/'

Структура проекта:

project
 --apps/
   --<dozens of apps>
 --settings/
   --__init__.py
   --dev.py
 --staticfiles/
 --templates/
 --__init__.py
 --manage.py
 --tests.py
 --urls.py

Я удалил project/static/ и запустил manage.py collectstatic, который копирует 404 статических файла в project/static/ из project/staticfiles/.

Если я затем запущу manage.py runserver, я увижу сайт, но статические стили/файлы не будут загружены.

Обратите внимание, похоже, больше ни у кого нет этой проблемы. Мы все используем одну и ту же базу кода из Github. Буквально нет причин, по которым я должен столкнуться с этой проблемой, а другие нет. Любые идеи? Я подумываю просто использовать Apache2 локально и настроить файл .wsgi и вообще пропустить сервер Django, но я бы не хотел.

Редактировать 1: я заметил, что сервер Django немного жаловался на некоторые статические файлы.

[20/Feb/2013 16:59:40] "GET /accounts/login/ HTTP/1.1" 302 0
[20/Feb/2013 16:59:40] "GET /dashboard/ HTTP/1.1" 200 8645
[20/Feb/2013 16:59:40] "GET /static/js/libs/less/less.js HTTP/1.1" 404 950
[20/Feb/2013 16:59:40] "GET /static/less/proton-app.less HTTP/1.1" 404 950
[20/Feb/2013 16:59:40] "GET /static/CACHE/js/987f5472f2f9.js HTTP/1.1" 404 950
[20/Feb/2013 16:59:41] "GET /static/CACHE/js/d5e323c0aed6.js HTTP/1.1" 404 950
[20/Feb/2013 16:59:41] "GET /static/images/favicon.png HTTP/1.1" 404 950

Мои извинения. Да, есть ошибки 404, связанные со статическими файлами.


person Rico    schedule 20.02.2013    source источник
comment
Что говорят ссылки на статические файлы в источнике HTML с сервера? Ссылки правильные? У ссылок 404? Разрешения? С вашей стороны предстоит много отладки.   -  person Dan Hoerst    schedule 21.02.2013
comment
@DanHoerst Ссылки верны, и по этим ссылкам существуют файлы (даже файлы JS CACHE). Нет 404 или проблем с разрешениями. Сайт отображается, но статические файлы отсутствуют (стили, css, .less и т. д.). Я вижу действительно уродливую версию сайта, которой он должен быть.   -  person Rico    schedule 21.02.2013
comment
Может быть, вы играли с DEBUG=False? Статические файлы обслуживаются, только если DEBUG=True.   -  person Daniel Eriksson    schedule 26.02.2013
comment
Нет, наши настройки разработчика всегда DEBUG=True. Я думаю, что это как-то связано с настройками базы данных (Postgres не нравится хост, указанный при локальном хосте), но я не могу точно проверить.   -  person Rico    schedule 27.02.2013


Ответы (1)


Мне не удалось найти решение этой проблемы на основе кода. Чтобы исправить это, я удалил проект и удалил свою виртуальную среду. Затем я воссоздал свою виртуальную среду, получил свой форк от github и заново настроил всю среду проекта.

Теперь это работает. *пожимает плечами*

person Rico    schedule 21.02.2013