A Django app for simplifing the use of grunt for your asset flow
Project description
=====================
django-grunted-assets
=====================
Goal
====
- Have css and js compressed and cache busted in production
- Have livereload work with css injection in development
- Have livereload work with coffee-script files and html templates
- Have node serve our staticfiles in development as it is way faster than
django's runserver
- Give the flexibility that compressor provides, linking arbitrary files in certain templates and locations
Where django-compressor falls short
===================================
- Slow compile and reload
- No css injection with livereload
- Not the tools that grunt provides (autoprefixer, uglify, etc)
- Inlining assets
How it works
============
1. Put your static where you normally do, e.g. in a top level 'static' or
'assets' dir, or in the 'static' dir in your app.
2. Configure the paths in your gruntfile.
3. Add ``{% load grunted_assets %}`` to your (base) template and link the
assets you want to load with: ``{% link_asset 'script.js' %}``
4. Run grunt (see below).
5. Run ``django-admin.py collectstatic``
The ``link_asset`` template tag (or the ``inline_asset`` tag), searches for the
files in either ``.tmp`` (development) or ``dist`` (production) within
``STATIC_ROOT``.
The argument you pass to ``link_asset`` of ``inline_asset`` is treated as a regex. A
simple ``main.css`` therefore works, but using ``.*main\.js`` for example, you can
also match files processed with something like
``grunt-rev<https://www.npmjs.com/package/grunt-rev>``_.
Development
-----------
In development (``grunt`` or ``grunt develop``), grunt compiles sass and coffee-
script to a ``.tmp`` dir inside 'static'. These files get served by node. No
cache busting here.
All static will be served by ``connect`` on ``localhost:8001``, so set
``STATIC_URL='http://localhost:8001``
Production
----------
Run ``grunt dist`` and check the ``dist`` folder into source control. This will
concat, minify etc. all your js and css into 'main.css' and 'main.js' as you
specify in your gruntfile.
On the server run ``django-admin.py collectstatic`` to have all static files
collected to the proper place.
django-grunted-assets
=====================
Goal
====
- Have css and js compressed and cache busted in production
- Have livereload work with css injection in development
- Have livereload work with coffee-script files and html templates
- Have node serve our staticfiles in development as it is way faster than
django's runserver
- Give the flexibility that compressor provides, linking arbitrary files in certain templates and locations
Where django-compressor falls short
===================================
- Slow compile and reload
- No css injection with livereload
- Not the tools that grunt provides (autoprefixer, uglify, etc)
- Inlining assets
How it works
============
1. Put your static where you normally do, e.g. in a top level 'static' or
'assets' dir, or in the 'static' dir in your app.
2. Configure the paths in your gruntfile.
3. Add ``{% load grunted_assets %}`` to your (base) template and link the
assets you want to load with: ``{% link_asset 'script.js' %}``
4. Run grunt (see below).
5. Run ``django-admin.py collectstatic``
The ``link_asset`` template tag (or the ``inline_asset`` tag), searches for the
files in either ``.tmp`` (development) or ``dist`` (production) within
``STATIC_ROOT``.
The argument you pass to ``link_asset`` of ``inline_asset`` is treated as a regex. A
simple ``main.css`` therefore works, but using ``.*main\.js`` for example, you can
also match files processed with something like
``grunt-rev<https://www.npmjs.com/package/grunt-rev>``_.
Development
-----------
In development (``grunt`` or ``grunt develop``), grunt compiles sass and coffee-
script to a ``.tmp`` dir inside 'static'. These files get served by node. No
cache busting here.
All static will be served by ``connect`` on ``localhost:8001``, so set
``STATIC_URL='http://localhost:8001``
Production
----------
Run ``grunt dist`` and check the ``dist`` folder into source control. This will
concat, minify etc. all your js and css into 'main.css' and 'main.js' as you
specify in your gruntfile.
On the server run ``django-admin.py collectstatic`` to have all static files
collected to the proper place.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for django-grunted-assets-0.2.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b49261aebbe033915fd8eb450c50c59d7cd5679ba5feaf6e0055dcbbca197aa3 |
|
MD5 | 53930cc8e9a2d0ac8b945120218016f0 |
|
BLAKE2b-256 | f36124432efef0b7b8fe542f64dfebf1c8c45100f2701fa2c2c21364cc46dc0a |
Close
Hashes for django_grunted_assets-0.2.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 212ac78c7116122e51b067c795b0825abfcce6a35156622dbc6b5b3215472b67 |
|
MD5 | e3b0c8604beda98f0ec6f933ca8d8179 |
|
BLAKE2b-256 | 2a0323970c3e23b301574dd01277b65c012ff4b62bfae7dbbdc9a6fd9305cf56 |