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

Bd9b4485bcf325b989b5721bd0ef4d91?s=128

Bruno Renié

April 14, 2012
Tweet

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