Django ManifestStaticFilesStorage throw Value Error

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

from django.contrib.staticfiles.storage import ManifestStaticFilesStorage

class NonStrictManifestStaticFilesStorage(ManifestStaticFilesStorage):
    manifest_strict = False

Это используется в сочетании с настройкой:

STATICFILES_STORAGE = "myapp.custom_storages.NonStrictManifestStaticFilesStorage"

Хотя все работает правильно, я сталкиваюсь с ошибкой ValueError, когда файл не существует, несмотря на установленный параметр manifest_strict = False. Эта ошибка не ожидалась при данных обстоятельствах.

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

У меня была похожая проблема, и я закончил тем, что реализовал

class ForgivingManifestStaticFilesStorage(ManifestStaticFilesStorage):

    manifest_strict = False

    def hashed_name(self, name, content=None, filename=None):
        try:
            result = super().hashed_name(name, content, filename)
        except ValueError:
            # When the fille is missing, let's forgive and ignore that.
            # logger.warning
            result = name
        return result

У вас может быть 404 ошибки.

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