Opened 8 years ago
Last modified 22 months ago
#27572 closed Cleanup/optimization
Static files served in development should prevent caching — at Initial Version
Reported by: | Kevin Christopher Henry | Owned by: | nobody |
---|---|---|---|
Component: | contrib.staticfiles | Version: | 1.10 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Currently, when Django serves static files in development with runserver
and django.contrib.staticfiles
it doesn't provide any cache headers. In their absence, user agents are free to cache the resources however they like. That means that when the developer updates a static resource they can't predict whether or not they will see the new version or the older cached version.
Dealing with this on the user agent side isn't always easy. For example, if you're using an embedded browser in a native app you'll probably have to create a remote debugging connection to the app and use platform-specific development tools to manipulate or disable the cache.
Since caching is a performance optimization that makes development more difficult and less predictable, I think it makes sense to disable it (via the appropriate HTTP headers) for static resources served in development.