I'm managing static files (JS, CSS, images, etc) in my Django application using staticfiles
. This works fine, but I'd like to start dynamically serving pre-compressed sources when the user's browser is capable.
I went through the linked tutorial and, in production (on Apache) this works fine. I can include files using
<script src="/static/js/my-site"></script>
and it will load my-site.js
in older browsers and my-site.js.gz
when GZip encoding is supported. Great! But: this breaks local development using runserver
. Of course, the staticfiles
default view has no idea how to turn /js/my-site
into /js/my-site.js
(or .gz
). To get runserver
working, I need to specify the extension, which breaks content negotiation.
Is there a better way to configure Apache, so that I can always request .js
(or .css
, etc) and get served the compressed version transparently? Or can I tell Django how to find the requested resource without specifying an extension? I wouldn't think I'm the only one trying to do this...