Как я могу правильно реализовать 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-файл, невозможно.
Я не уверен, какую конфигурацию я могу здесь упустить. Буду признателен за любую помощь!