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 ошибки.