2016-06-14 2 views
1

У меня есть проект, который работает очень хорошо около 6 месяцев. Статические файлы работают отлично, и все отлично. У меня есть свои static файлы, расположенные в папке, как так:Django не обновляет статические настройки местоположения

/var/www/html/static/

В моем settings.py файл, у меня есть статическая установка раздел следующим образом:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"), 
    '/var/www/html/static/', 
    ) 

Это работает просто отлично.

Однако теперь я хочу переместить папку static в другое место. В частности, я хочу переместить его в основной каталог проекта. Мой проект находится по адресу /var/www/html/shq/, поэтому я хочу, чтобы мой каталог static находился по адресу /var/www/html/shq/static/. Я переместил папку, а затем обновленный мой settings.py файл выглядеть следующим образом:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"), 
    '/var/www/html/shq/static/', 
    ) 

Однако, это не сработало. Проект Django по-прежнему ссылается на старое местоположение.

Что мне здесь не хватает? Почему проект Django не использует новое местоположение /var/www/html/shq/static/?

EDIT

Это то, что задняя часть моего settings.py файла выглядит следующим образом:

119 STATICFILES_FINDERS = [ 
120 'django.contrib.staticfiles.finders.FileSystemFinder', 
121 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
122 ] 
123 
124 STATIC_URL = '/static/' 
125 STATIC_ROOT = '/var/www/html/collected_static/' 
126 MEDIA_URL = '/media/' 
127 MEDIA_ROOT = '/var/www/html/shq/media/' 
128 STATICFILES_DIRS = [ 
129  os.path.join(BASE_DIR, "static"), 
130  '/var/www/html/shq/static/', 
131  ] 

ответ

0

Вы можете попробовать сделать что-то вроде этого. Я думаю, что он возвращает список каталогов, которые django ищет для поиска статических файлов. Может помочь отладки.

from django.contrib.staticfiles import finders 
from pprint import pprint 
pprint(finders.find("", all=True)) 

Кроме того, я, возможно, не в полной мере понять ваш сценарий, но вы могли бы подтвердить, что STATIC_ROOT установлен в том месте, где вы хотите, чтобы обслуживать статические файлы (где ваш веб-сервер будет обслуживать файлы). Параметр STATIC_DIRS сообщает collectstatic, где можно найти статические файлы, но STATIC_ROOT - это то, где collectstatic будет фактически размещать файлы.

+0

'STATIC_ROOT' установлен в отдельный каталог, так что статические файлы хранятся там для производства (и когда' DEBUG = False'). Я ввел этот скрипт, который вы разместили в редакторе 'python', но он жалуется, что' STATICFILES_FINDERS' не установлен, даже если он есть (у меня есть два указателя в списке). Не уверен, почему это всегда так расстраивает. - Edit - я также обновил сообщение, чтобы показать больше моего файла 'settings.py' – Garfonzo

0

Я понял. Неудивительно, что это было легко исправить, как только я понял это.

У меня было ничего, чтобы сделать с настройками Django и все, что связано с Apache.

Оригинал

Alias /static/ /var/www/html/static/ 

Поэтому независимо от того, что я сделал в моем файле Django settings.py, Apache был переопределение, что для отправки /static/ запрашиваемую к неправильному директории.

Новый Apache Настройка

Alias /static/ /var/www/html/shq/static/ 

Теперь в настоящее время ссылаются на собственные статические файлы.Надеюсь, это поможет кому-то еще в будущем :)

Смежные вопросы