- Upgraded from Django 2.2.28 to 3.2.
- Using Django-storage 1.14.2.
- Replaced CachedFilesMixin with ManifestStaticFilesStorage.
- Post-upgrade, everything was the same; no other settings changed.
- Issue: self.location is caching a None value that doesn’t alter.
- Temporary Fix: Deleting the cache in the debugger manually with a del statement resolves the issue.
class StaticFilesStorage(ManifestStaticFilesStorage, S3Boto3Storage): def __init__(self, *args, **kwargs): S3Boto3Storage.__init__(self, bucket_name=settings.STATIC_FILES_BUCKET, custom_domain=domain(settings.STATIC_URL), *args, **kwargs) ManifestStaticFilesStorage.__init__(self, *args, **kwargs)
File /usr/local/lib/python3.8/dist-packages/django/contrib/staticfiles/storage.py:38, in StaticFilesStorage.path(self, name) 36 def path(self, name): 37 if not self.location: ---> 38 raise ImproperlyConfigured("You're using the staticfiles app " 39 "without having set the STATIC_ROOT " 40 "setting to a filesystem path.") 41 return super().path(name) ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.
PDB output showing cached None value in self.location:
(Pdb) self.base_location 'tmp/vantage/static/' (Pdb) self.location '' (Pdb) os.path.abspath(self.base_location) '/app/tmp/vantage/static' (Pdb) del self.location (Pdb) self.location '/app/tmp/vantage/static' (Pdb) self._location 'tmp/vantage/static/' (Pdb) c
The error is resolved after manually refreshing the cache on self.location