Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased¶
- Nothing (yet!)
2.0.0 - 2024-09-12¶
Added¶
- Django
settings.py:SERVESTATIC_USE_MANIFEST
utilize the Django manifest rather than scanning the filesystem.- When also using ServeStatic's
CompressedManifestStaticFilesStorage
backend, ServeStatic will no longer need to callos.stat
.
- When also using ServeStatic's
Changed¶
- Minimum python version is now 3.9.
- Django
setings.py:SERVESTATIC_USE_FINDERS
will now discover files strictly using the finders API. Previously, ServeStatic would also scansettings.py:STATIC_ROOT
for files not found by the finders API. - Async file reading is now done via threads rather than
aiofiles
due recent performance tests. BaseServeStatic
has been renamed toServeStaticBase
.AsgiFileServer
has been renamed toFileServerASGI
.- Lots of internal refactoring to improve performance, code quality, and maintainability.
1.2.0 - 2024-08-30¶
Added¶
- Verbose Django
404
error page whensettings.py:DEBUG
isTrue
Fixed¶
- Fix Django compatibility with third-party sync middleware.
- ServeStatic Django middleware now only runs in async mode to avoid clashing with Django's internal usage of
asgiref.AsyncToSync
.
- ServeStatic Django middleware now only runs in async mode to avoid clashing with Django's internal usage of
- Respect Django
settings.py:FORCE_SCRIPT_NAME
configuration value.
1.1.0 - 2024-08-27¶
Added¶
- Files are now compressed within a thread pool to increase performance.
Fixed¶
- Fix Django
StreamingHttpResponse must consume synchronous iterators
warning. - Fix Django bug where file paths could fail to be followed on Windows.
1.0.0 - 2024-05-08¶
Changed¶
- Forked from
whitenoise
to add ASGI support.