Skip to content

Releases: Archmonger/ServeStatic

3.1.0

11 Jun 00:29
a270833

Choose a tag to compare

Added

  • Added support for running ServeStatic in standalone mode (without an app).

3.0.2

04 Jun 05:29
8bb2e6f

Choose a tag to compare

Fixed

  • Fixed a bug where ServeStaticASGI was preventing compatibility with the lifespan protocol. All non-HTTP requests are now properly forwarded to the user's ASGI app.

3.0.1

02 Mar 09:57
7cc14a2

Choose a tag to compare

Fixed

  • Fixed compatibility between the two following Django settings: SERVESTATIC_KEEP_ONLY_HASHED_FILES and SERVESTATIC_USE_MANIFEST

3.0.0

11 Jan 00:16
e447ba4

Choose a tag to compare

Changed

  • Drop Django 3.2 and 4.1 support.
  • Any errors from threads in the servestatic.compress command are now raised.
  • Compression code has been refactored to match upstream (WhiteNoise).

Fixed

  • Add asgiref to dependencies to fix import error.

2.1.1

27 Oct 21:57
b7d9f99

Choose a tag to compare

Fixed

  • Make sure WSGI SlicedFile is closed properly to prevent subtle bugs.

2.1.0

03 Oct 02:54
8d4010a

Choose a tag to compare

Added

  • Support Python 3.13.

Changed

  • Query strings are now preserved during HTTP redirection.

2.0.1

13 Sep 22:57
3e63ed0

Choose a tag to compare

Fixed

  • Fix crash when running manage.py collectstatic when Django's settings.py:STATIC_ROOT is a Path object.

2.0.0

13 Sep 00:26
6bfd004

Choose a tag to compare

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 call os.stat.

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 scan settings.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 to ServeStaticBase.
  • AsgiFileServer has been renamed to FileServerASGI.
  • Lots of internal refactoring to improve performance, code quality, and maintainability.

1.2.0

30 Aug 23:05
85a39c9

Choose a tag to compare

Added

  • Verbose Django 404 error page when settings.py:DEBUG is True (Upstream PR)

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
  • Respect Django settings.py:FORCE_SCRIPT_NAME configuration value (Upstream PR)

1.1.0

27 Aug 10:20
04c20ac

Choose a tag to compare

Added

  • Files are now compressed within a thread pool to increase performance (Upstream PR)

Fixed

  • Fix Django StreamingHttpResponse must consume synchronous iterators warning
  • Fix Django bug where file paths could fail to be followed on Windows (Upstream PR)