9

Farkın ne olduğundan emin değilim, her ikisi de çalışıyor gibi görünüyor. Etrafa baktım ve sanki aynı şeymiş gibi görünüyorlar. Sadece insanlar bu alanda kullandıkları meraktan yoksun mu?{% load static%} ve {% load staticfiles%}: hangisi tercih edilir?

Bunu okudum ama hala hangi alanda ve hangi alanda kullanıldığını bilmiyorum. Benimki her ikisi için çalışıyor. ilk başta statik klasör yüklediğini düşündüm ama statik dosyalar için de çalışıyor ... -

+3

Olası kopyası [{% load staticfiles%} ve {% load static%}] arasındaki fark nedir? (Http://stackoverflow.com/questions/24238496/what-is-the-difference-between-load -staticfiles-ve-load-statik) – dyeray

+1

@dyeray Evet bunu okudum ama hala ne zaman ve hangi alanda kullanıldığını bilmiyorum. Benimki her ikisi için çalışıyor. ilk başta statik klasör yüklediğini düşündüm ama statik dosyalar için de çalışıyor ... –

cevap

18

Şu an için (Django 1.9 ve önceki sürümler), {% load staticfiles %}, yerleşik olandan daha fazla özelliğe sahip olan katkı uygulamasından static şablon etiketini yükler django.core.static.

En önemli fark, çözümleyicinin örneğin karmaları yönetebildiğinden, CDN'de depolanan dosyaları yönetebilen staticfiles arasındaki en önemli farkdır. core.static sadece (örneğin bültenleri arasında net önbelleğe md5 özetini ekleyerek) dosyalarınızı işleme aldık eğer yeterli değildir statik dosya için STATIC_URL eklemek

Bu fark olmayan yerel depolama dosyaları yönetmek olmasından kaynaklanmaktadır Django'nun çekirdek paketine dahil olmaya adanmamış, ancak birçok geliştiricinin resmi bir katkı paketi olarak uygulanmasına hala faydalı olmuştur. Yani, staticfiles'u kullanmaya başladıysanız, şablonlarınızda her birini kullanmayı hatırlamanız gerekiyordu. AMA, örneğin using Media classes gibi bazı problemler ortaya çıkabilir, bu yüzden bu iki şablon etiketini bir araya getirmek ve geliştiricinin INSTALLED_APPS numaralı telefonunda django.contrib.staticfiles'un bulunup bulunmadığına dair farklı bir davranış kullanın. (Ayrıca see ticket in Django tracker) Django 1.10 and onwards itibaren

, {% load static %} kullanacak staticfiles içten aktive eğer (oherwise varsayılan davranışı bulundurun) ve contrib paketinde templatetag karışıklığı önlemek için kaldırılacaktır.

TL; DR

  • Django 1.10 önce: staticfiles yükleri (kolayca veya değil) olmayan yerel depolama nerede static olamaz yönetebilir bir templatetags;
  • Django 1.10'dan: contrib.staticfiles uygulaması hala var ama onun templatetags kaldırılacak sadece {% static %} templatetags kalır;
  • Django 2.0'dan (Bence): {% load staticfiles %} kaldırıldı. Eğer ilgili contrib uygulamasını kullanmak (ve bunu kullanırken neden biliyor) Django 1.10 kadar eğer Şimdilik

, aksi takdirde sadece static kullanın staticfiles templatetags kullanın.

İlgili konular