Overview

django-bundledmedia

django-bundledmedia is a Django application for adding compressed CSS and JS files in some prepared slots.

This functionality was splitted out of Merengue CMS.

Installing

  • Install package from pypi:

    $ easy_install django-bundledmedia
    
  • Include bundledmedia in the INSTALLED_APPS setting.

  • Include bundledmedia.middleware.BundledMediaMiddleware in the MIDDLEWARE_CLASSES setting.

Usage

In your base template (i.e. base.html):

{% load bundledmedia %}
<html>
 <head>
 {# placeholder to allow plugins and other templates to add css assets #}
 {% bundledmedia "css" "css" %}
 ...
 {% bundledmedia "extracss" "css" %}
 </head>
 <body>
  ...
  {# placeholder to allow plugins and other templates to add javascript assets #}
  {% bundledmedia "js" "js" %}
 </body>
</html>

In your included template (i.e. inc.sidebar.html):

{% load bundledmedia %}
{% addmedia "css" %}
  <link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/sidebar.css"/>
{% endaddmedia %}
{% addmedia "js" %}
  <script language="javascript" src="{{ MEDIA_URL }}js/jquery.sidebar.js"></script>
{% endaddmedia %}
...

In your specific template (i.e. myview.html):

{% load bundledmedia %}
{% addmedia "extracss" %}
  <link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/myview.css"/>
{% endaddmedia %}
...

This code will render all chunks of code of all the included templates in the placeholders above.

Compression

django-bundledmedia uses django-compressor to render compressed CSS and JS when the COMPRESS setting is set to True