Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 15, 2013 11:37:34

dkoldyaev
Зарегистрирован: 2013-10-15
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу подключить STATIC_ROOT

Добрый день. Прошу вашей помощи в настройке production сервера: весь мозг уже сломал.
Суть проблемы: есть вот такая конфигурация папок сервера

PROJECT_PATH =  path.join(os.path.dirname(__file__), '../')
MEDIA_ROOT =    path.join(PROJECT_PATH, '..', 'www', 'media')
STATIC_ROOT =   path.join(PROJECT_PATH, '..', 'www', 'static')
TEMPLATE_DIRS = path.join(PROJECT_PATH, 'templates/')
STATICFILES_DIRS = (
    path.join(TEMPLATE_DIRS, 'static').replace('\\','/'),
)

В обоих режимах DEBUG = True, DEBUG = False на сайте не подключаются статичные файлы
Хотя
python manage.py collectstatic
выполняется корректно и складывает файлы из STATICFILES_DIRS в STATIC_ROOT

настройки urls такие:

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

На локальной копии все ок, на рабочем серваке — нет: грузятся только media.
Причем как со включенным дебагом, так и с выключенным (не собирает ни из STATICFILES_DIRS, ни из STATIC_ROOT)

Статик файндеры подключены по-умолчанию:
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

Пробую на сервере выполнить
python manage.py shell
>>> from project.settings import *
>>> print STATIC_ROOT
>>> print STATICFILES_DIRS
Все корректно. Все файлы лежат на своих местах.

Также прошу совета: каким образом можно проследить по какому пути (в файловой системе) Django ищет статичные файлы?

И да, я пробовал работать со статичными путями. Увы, результат не меняется
И да, права на папку со статикой установлены 777

Отредактировано dkoldyaev (Окт. 15, 2013 11:54:03)

Офлайн

#2 Окт. 15, 2013 11:54:44

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не могу подключить STATIC_ROOT

А зачем Вы статику запихали в шаблоны?

settings.py у меня лежит в отдельном каталоге.
Так работает.

SETTINGS_ROOT = os.path.dirname(__file__)
def get_project_dir(name):
    return os.path.join(SETTINGS_ROOT, '..', name).replace('\\', '/')
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    get_project_dir('static'),
)



Офлайн

#3 Окт. 15, 2013 12:04:09

dkoldyaev
Зарегистрирован: 2013-10-15
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу подключить STATIC_ROOT

FishHook
А зачем Вы статику запихали в шаблоны?
А что, нельзя?

По поводу файлов настроек: у меня файл settings.py лежит в папке projectname, а локальные настройки для dev и prod окружений инклюдятся из отдельный файлов. Но суть то не в этом: все пути правильно прописаны. Я даже пробовал их указывать статично.

Офлайн

#4 Окт. 15, 2013 14:57:20

alrusdi
Зарегистрирован: 2013-09-30
Сообщения: 20
Репутация: +  8  -
Профиль   Отправить e-mail  

Не могу подключить STATIC_ROOT

Права доступа проверьте у директории static - может быть серверу просто нельзя оттуда читать.
Какая именно ошибка доступа возникает при запросе файла напрямую?
Кто обслуживает выдачу статики браузеру?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version