Skip to main content

UNKNOWN

Project description

This little apps helps to manage your staticfiles when you need to minify them for production use. Moreover, it is capable of versioning the assets so that whenever you need to alter the static files, users won’t be given old file from the browser cache.

Installation

Standard Django way:

pip install django-versioned-static

Add to your INSTALLED_APPS:

INSTALLED_APPS = (
    ..
    ..,
    'versioned_static',
    ...
)

Configure the assets themselves:

STATICS_ASSETS = {
    'css': {
        'css/mycoolproject.css': {
            'media': ('screen', 'projection', 'tv'),
            'files': ('css/jquery-ui-1.8.18.custom.css', 'css/style.css',),
            'version': 1
        },
        'css/print.css': {
            'media': ('print',),
            'files': ('css/print.css',),
            'version': 1
        }
    },
    'js': {
        'js/mycoolproject.js': {
            'files': ('js/jquery-1.7.1.min.js',
                      'js/main.js'),
            'version': 1
        }
    }
}

Done!

Usage in templates

Very simple. Use the asset template tag. Give it the static type (css or js) and the base css alias. It will generate all the necessary HTML for you directly:

{% load versioned_static_tags %}
{% asset "css" "css/mycoolproject.css" %}
{% asset "css" "css/print.css" %}
{% asset "js" "js/mycoolproject.js" %}

It takes your settings in the account. In development (when DEBUG = True), you will be given unversioned and unminified static files. When you turn the debug off, you will be given versioned asset links.

Result with DEBUG=True:

<link type="text/css" rel="stylesheet" href="/static/css/jquery-ui-1.8.18.custom.css" media="screen,projection,tv"/>
<link type="text/css" rel="stylesheet" href="/static/css/style.css" media="screen,projection,tv"/>

<link type="text/css" rel="stylesheet" href="/static/css/print.css" media="print"/>

<script type="text/javascript" src="/static/js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="/static/js/main.js"></script>

Result with DEBUG=False:

<link type="text/css" rel="stylesheet" href="/static/css/mycoolproject.1.css" media="screen,projection,tv"/>

<link type="text/css" rel="stylesheet" href="/static/css/print.1.css" media="print"/>

<script type="text/javascript" src="/static/js/mycoolproject.1.js"></script>

Minifying the files

This app features simple management command which helps you create the minified files for production. Usage goes like this:

django-admin.py minifystatics (CSS/JS) ASSET_FILE

Real example for previous scenario:

django-admin.py minifystatics css css/print.css

The command will look in your STATIC_ROOT by default (so be sure you ran collectstatic before the minify command) and use it as the root path.

Notes

django-versioned-static internally uses YUI library for minifying the CSS/JS assets.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-versioned-static-1.4.0.tar.gz (5.2 kB view details)

Uploaded Source

File details

Details for the file django-versioned-static-1.4.0.tar.gz.

File metadata

File hashes

Hashes for django-versioned-static-1.4.0.tar.gz
Algorithm Hash digest
SHA256 d23a46364ce845e3428e226ff6fae264e222942da0aa7e11c2b3a86459f9068f
MD5 630841cb549725ac2ba8ee900f949782
BLAKE2b-256 bd370d9c6c7f98408c09956a239a48d41c78e8ed43f27f51b7043116c7c5b066

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page