|
| 1 | +Title: Gerenciando assets com django-pipeline |
| 2 | +Date: 2014-09-18 19:00 |
| 3 | +Tags: Django, django-pipeline, assets, static |
| 4 | +Category: django-apps |
| 5 | +Slug: gerenciando-assets-com-django-pipeline |
| 6 | +Author: Raphael Passini |
| 7 | +Email: raphapassini@gmail.com |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | +Gerenciando Assets Com django-pipeline |
| 12 | +====================================== |
| 13 | + |
| 14 | +O objetivo desse post é explicar a utilização do aplicativo django-pipeline para gerenciar a compilação e compressão de arquivos CoffeScript, Less, Sass, entre outros. |
| 15 | + |
| 16 | +Instalando |
| 17 | +---------- |
| 18 | + |
| 19 | +Primeiro vamos instalar o pacote django-pipeline |
| 20 | + |
| 21 | +```python |
| 22 | +pip install django-pipeline |
| 23 | +``` |
| 24 | + |
| 25 | +Depois vamos alterar o nosso arquivo settings.py e adicionar o pipeline ao INSTALLED_APPS |
| 26 | + |
| 27 | +``` |
| 28 | +INSTALLED_APPS = ( |
| 29 | + 'pipeline', |
| 30 | +) |
| 31 | +``` |
| 32 | + |
| 33 | +Configurando os seus assets |
| 34 | + |
| 35 | +Como funciona a configuração dos arquivos no django-pipeline, primeiro vamos criar um grupo de arquivos estáticos, por exemplo, “main”: |
| 36 | + |
| 37 | +```python |
| 38 | +PIPELINE_CSS = { |
| 39 | + 'main': { |
| 40 | + 'source_filenames': ( |
| 41 | + 'less/main.less', |
| 42 | + 'less/extra.less', |
| 43 | + ), |
| 44 | + 'output_filename': 'css/main.css', |
| 45 | + } |
| 46 | +} |
| 47 | + |
| 48 | +PIPELINE_JS = { |
| 49 | + 'vendor': { |
| 50 | + 'source_filenames': ( |
| 51 | + 'js/vendor/jquery.min.js', |
| 52 | + 'js/vendor/handlebars.min.js', |
| 53 | + ), |
| 54 | + 'output_filename': 'js/vendor.min.js', |
| 55 | + } |
| 56 | +} |
| 57 | +``` |
| 58 | + |
| 59 | +Os arquivos listados dentro de “source_filenames” serão compilados para o arquivo “output_filename” quando executarmos o python manage.py collectstatic Nós podemos criar quantos grupos forem necessários para nosso projeto. |
| 60 | + |
| 61 | +Utilizando nos templates |
| 62 | + |
| 63 | +Para incluirmos os arquivos configurados no passo anterior no nosso template é bem simples: |
| 64 | + |
| 65 | +```python |
| 66 | +{% load compressed %} |
| 67 | +{% compressed_css 'main' %} |
| 68 | +{% compressed_js 'vendor' %} |
| 69 | +``` |
| 70 | + |
| 71 | +Colocando em produção |
| 72 | + |
| 73 | +Para deixar o ambiente pronto para produção vamos definir um dos storages disponíveis no pipeline. Você pode ver as opções de storage disponíveis na documentação do django-pipeline. Você pode ler mais sobre os storage systems customizados aqui |
| 74 | + |
| 75 | +```python |
| 76 | +STATICFILES_FINDERS = ( |
| 77 | + 'pipeline.finders.PipelineFinder', |
| 78 | +) |
| 79 | +# PIPELINE RELATIVE CONFIG |
| 80 | +STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage' |
| 81 | +``` |
| 82 | + |
| 83 | +Pronto, feito isso podemos colocar nosso projeto em produção, quando rodarmos o collectstatic os arquivos enviados para o nosso STATIC_ROOT já estarão automaticamente compilados e minificados! |
| 84 | + |
| 85 | +Os códigos utilizados aqui podem ser obtidos no github desse tutorial: https://github.com/raphapassini/pipeline_tutorial |
| 86 | + |
| 87 | +Achou legal? Discorda de alguma coisa? Quer acrescentar algo? Deixa seu comentário ai embaixo! |
0 commit comments