[PATCH 1/9] settings: Help caching with content-aware static file names

Stephen Finucane stephen.finucane at intel.com
Thu Mar 31 08:04:26 AEDT 2016


From: Damien Lespiau <damien.lespiau at intel.com>

If we always serve the "style.css" file, even when its content changes,
we run into the situation where the browser (or any HTTP aware middle
man) will cache the file and not download a newer version.

This can be solved by appending the file hash to its filename. If the
content changes, the file name changes and the new version is used right
away. We can also use far future Expires headers with such static files,
they will really never change.

Signed-off-by: Damien Lespiau <damien.lespiau at intel.com>
Signed-off-by: Stephen Finucane <stephen.finucane at intel.com>
---
v2: Disable for Django < 1.7
---
 patchwork/settings/production.example.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/patchwork/settings/production.example.py b/patchwork/settings/production.example.py
index 195ffcc..89e6b97 100644
--- a/patchwork/settings/production.example.py
+++ b/patchwork/settings/production.example.py
@@ -11,6 +11,8 @@ from __future__ import absolute_import
 
 import os
 
+import django
+
 from .base import *  # noqa
 
 #
@@ -67,6 +69,10 @@ DATABASES = {
 #
 # Static files settings
 # https://docs.djangoproject.com/en/1.7/ref/settings/#static-files
+# https://docs.djangoproject.com/en/1.8/ref/contrib/staticfiles/#manifeststaticfilesstorage
 #
 
 STATIC_ROOT = os.environ.get('STATIC_ROOT', '/srv/patchwork/htdocs/static')
+
+if django.VERSION >= (1, 7):
+    STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'
-- 
2.0.0



More information about the Patchwork mailing list