Django не обновляет настройки статического местоположения
У меня есть проект, который работает нормально уже около 6 месяцев. Статические файлы работали отлично, и все отлично. У меня есть мой static
файлы, расположенные в папке как так:
/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/
?
РЕДАКТИРОВАТЬ
Это то, что хвост моего 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 ]
2 ответа
Вы можете попробовать сделать что-то вроде этого. Я думаю, что он возвращает список каталогов, которые django ищет для поиска статических файлов. Может помочь отладка.
from django.contrib.staticfiles import finders
from pprint import pprint
pprint(finders.find("", all=True))
Кроме того, возможно, я не совсем понимаю ваш сценарий, но вы можете подтвердить, что STATIC_ROOT настроен на место, где вы хотите обслуживать ваши статические файлы (где ваш веб-сервер будет обслуживать файлы). Параметр STATIC_DIRS сообщает collectstatic, где искать статические файлы, но STATIC_ROOT - это место, где collectstatic будет фактически размещать файлы.
Я понял. Не удивительно, что это было легко исправить, как только я понял это.
Это не имело никакого отношения к моим настройкам Django и всему, что связано с Apache.
оригинал
Alias /static/ /var/www/html/static/
Так что независимо от того, что я сделал в моем Django settings.py
файл, Apache переопределил, чтобы отправить /static/
запрашивается не в том каталоге.
Новая настройка Apache
Alias /static/ /var/www/html/shq/static/
Теперь ссылки на правильные статические файлы. Надеюсь, это поможет кому-то еще в будущем:)