Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Staticfiles : tout ce qu'il faut savoir, rien que ce qu'il faut savoir

Staticfiles : tout ce qu'il faut savoir, rien que ce qu'il faut savoir

Bruno Renié

April 14, 2012
Tweet

More Decks by Bruno Renié

Other Decks in Programming

Transcript

  1. Staticfiles tout rien que ce qu'il faut savoir Bruno Renié

    Djangocong 2012
  2. Django >= 1.4 django-staticfiles >= 1.2

  3. MEDIA STATIC données dynamiques données statiques wat

  4. STATIC_ROOT STATIC_URL STATICFILES_FINDERS STATICFILES_DIRS STATICFILES_STORAGE django-admin.py collectstatic

  5. STATIC_ROOT STATIC_URL STATICFILES_FINDERS STATICFILES_DIRS STATICFILES_STORAGE django-admin.py collectstatic

  6. Layout project/ app1/static/style.css app2/static/jquery.js app1 static app2 static

  7. Configuration minimale # settings.py STATIC_URL = '/static/' # urls.py from

    django.contrib.staticfiles.urls \ import staticfiles_urlpatterns urlpatterns += staticfiles_urlpatterns() # settings.py # urls.py
  8. et c'est tout

  9. Référencer un fichier {% load staticfiles %} {% static "jquery.js"

    %} staticfiles static
  10. app1/static/foo.css app2/static/foo.css {% static "foo.css" %} Conflits Comme les templates

    foo.css foo.css "foo.css"
  11. Namespaces Applications réutilisables / éviter les conflits app1/static/app1/foo.css app2/static/app2/foo.css {%

    static "app2/foo.css" %} app1/foo.css app2/foo.css "app2/foo.css"
  12. STATICFILES_DIRS Applications non-standard

  13. En production # settings.py STATIC_ROOT = '/path/to/public/static' $ python manage.py

    collectstatic # settings.py
  14. et c'est tout

  15. Cache busting STATICFILES_STORAGE = ( 'django.contrib.' 'staticfiles.storage.' 'CachedStaticFilesStorage' ) {%

    static "foo.css" %} ↓ /static/foo.1cc9fe7eb4b9.css
  16. {% static %} ♡ @brutasse