Как я могу правильно реализовать ManifestStaticFilesStorage в Django?

Я пытаюсь реализовать ManifestStaticFilesStorage в моем проекте Django. Из того, что я видел, это должно быть просто, но оно ведет себя не так, как я ожидал.

Во-первых, у меня есть

DEBUG=os.getenv("DEBUG", "False").lower() == "true"

В моем файле settings.py с параметром DEBUG в моем файле .env, равным "False".

Далее, у меня есть следующие настройки для моих статических файлов:

STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'
MAX_DOCUMENT_FILE_SIZE_MB = 50
STATIC_URL = '/static/'
if LOCAL: # LOCAL is False here
    STATIC_ROOT = os.path.join(BASE_DIR, 'static_collected') 
else:
    STATIC_ROOT = os.getenv('STATIC_ROOT')

Наконец, для моего собственного здравомыслия, у меня есть несколько инструкций print в конце моего файла настроек, которые выводятся при запуске collectstatic, которые выводят:

STATICFILES_STORAGE: django.contrib.staticfiles.storage.ManifestStaticFilesStorage
STATIC_ROOT: /var/www/html/static
STATIC_URL: /static/

У меня есть сервер nginx, настроенный для обслуживания статических файлов в указанном выше STATIC_ROOT. Наконец, в venv моего проекта я запускаю

python manage.py collectstatic

И он успешно копирует файлы в указанный мной выходной каталог. Сервер nginx корректно их обслуживает.

Однако, после всего этого, имена файлов остаются их базовыми итерациями, а не включают хэш, как я ожидал.

Я использую шаблон Django {% static %} во всех своих HTML-файлах шаблонов.

Я пробовал удалить всю статическую папку и повторно запустить collectstatic, но каждый раз получается одно и то же.

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

Я не уверен, какую конфигурацию я могу здесь упустить. Буду признателен за любую помощь!

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