In Django 3.0, CachedStaticFilesStorage
was removed, in favor of ManifestStaticFilesStorage
. Both are designed to hash collected files, resulting in a <filename>.<hash>.<ext>
file that can be set to infinite expiration.
CachedStaticFilesStorage
was deprecated in Django 2.1, and for some fairly reasonable reasons:
ManifestStaticFilesStorage
solves this for most people by:
collectfiles
time.staticfiles.json
.The problem is that this only looks for this file in one place: /static/
(or, technically, settings.STATIC_ROOT
). The expectation is that all static media for the entire project is built once, and never changes. Fine for typical usage, but not fine when extensions are involved.
This means it's not suitable for Review Board.
To deal with this, we'll need to introduce one of three new storage classes:
staticfiles.json
in more than one location (by, say, providing a map of path prefixes to location roots)