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
Close
Hashes for django-grunted-assets-0.2.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2730a00933c9d47f03a6cc20815cf28f534ae2aa53215b3da00d86bed83a02fa |
|
MD5 | 9c86002a799ddaf22d16363e15400d7a |
|
BLAKE2b-256 | c87958049a3acbc8500e2347810d10adae278fa4cd6562c43675a11f260737a9 |