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
File details
Details for the file django-grunted-assets-0.2.1.tar.gz
.
File metadata
- Download URL: django-grunted-assets-0.2.1.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b49261aebbe033915fd8eb450c50c59d7cd5679ba5feaf6e0055dcbbca197aa3 |
|
MD5 | 53930cc8e9a2d0ac8b945120218016f0 |
|
BLAKE2b-256 | f36124432efef0b7b8fe542f64dfebf1c8c45100f2701fa2c2c21364cc46dc0a |
File details
Details for the file django_grunted_assets-0.2.1-py2.py3-none-any.whl
.
File metadata
- Download URL: django_grunted_assets-0.2.1-py2.py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 212ac78c7116122e51b067c795b0825abfcce6a35156622dbc6b5b3215472b67 |
|
MD5 | e3b0c8604beda98f0ec6f933ca8d8179 |
|
BLAKE2b-256 | 2a0323970c3e23b301574dd01277b65c012ff4b62bfae7dbbdc9a6fd9305cf56 |