Как обновить статические файлы Wagtail, они перестали работать, когда я использовал STATIC_DIRS

Я пытаюсь обновить Wagtail с версии 2.8 до последней версии 2.15. Также мне пришлось обновиться с Django 3.0 до 3.2. Однако я заметил, что когда я использую STATICFILES_DIRS, стиль админки Wagtail (2.15) искажается, как будто она использует файлы из старой версии (2.8)

PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
BASE_DIR = os.path.dirname(PROJECT_DIR)

...

STATICFILES_FINDERS = [
   'django.contrib.staticfiles.finders.FileSystemFinder',
   'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]


STATICFILES_DIRS = [os.path.join(PROJECT_DIR, 'static'),]

STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

И наоборот, когда я удаляю STATICFILES_DIRS, стиль в админке Wagtail исправляется, но все стили в моем проекте исчезают.

Я уже проверил, и это не кэш. Я пробовал это несколько раз, разные браузеры и т.д.

Попробуйте изменить:

STATICFILES_DIRS = [os.path.join(PROJECT_DIR, 'static'),]

to

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'),]

Ваша настройка STATICFILES_FINDERS говорит Django, что он должен искать статические файлы в следующих местах:

  • FileSystemFinder указывает ему искать в тех местах, которые указаны в STATICFILES_DIRS;
  • AppDirectoriesFinder указывает ему искать в static папке каждого зарегистрированного приложения в INSTALLED_APPS.

При обычных обстоятельствах STATICFILES_DIRS не должен иметь значения для собственных статических файлов Wagtail. Это происходит потому, что статические файлы Wagtail хранятся в приложениях, составляющих пакет Wagtail, и будут подтягиваться AppDirectoriesFinder - FileSystemFinder (и STATICFILES_DIRS) в игру не вступают.

Тот факт, что вы видите разницу, говорит о том, что вы ранее настраивали JS / CSS Wagtail, размещая статические файлы в папке 'static' вашего проекта в таком месте, как myproject/static/wagtailadmin/css/, чтобы переопределить встроенные файлы. Эти настройки предположительно были сделаны в Wagtail 2.8 и не будут работать корректно в Wagtail 2.15. Решением является удаление этих пользовательских файлов из вашего проекта.

Вернуться на верх