Найти - Пользователи
Полная версия: Не могу подключить STATIC_ROOT
Начало » Django » Не могу подключить STATIC_ROOT
1
dkoldyaev
Добрый день. Прошу вашей помощи в настройке 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
FishHook
А зачем Вы статику запихали в шаблоны?

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'),
)
dkoldyaev
FishHook
А зачем Вы статику запихали в шаблоны?
А что, нельзя?

По поводу файлов настроек: у меня файл settings.py лежит в папке projectname, а локальные настройки для dev и prod окружений инклюдятся из отдельный файлов. Но суть то не в этом: все пути правильно прописаны. Я даже пробовал их указывать статично.
alrusdi
Права доступа проверьте у директории static - может быть серверу просто нельзя оттуда читать.
Какая именно ошибка доступа возникает при запросе файла напрямую?
Кто обслуживает выдачу статики браузеру?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB