2012-03-04 15 views
7

Sitemin statik CSS ve Javascript dosyalarını sıkıştırmak için django-compressor kullanıyorum. Sitemin statik varlıklarını Amazon S3 üzerinden sunduğumdan, dosyalarımı S3'e yüklemek için django-storages kullanıyorum.Django-compressor şablon kalıtımla çalışır mı?

İşte benim sorunum: Tüm sitemin diğer şablonlarının devralabildiği ve genişletebileceği temiz bir base.html şablonu yapmaya çalışıyorum. İşte şu anda gibi görünüyor: Gördüğünüz gibi, ben css ve js blok geçersiz kılmak için bu şablonu miras Şablonlarımı izin edilir Burada yapılacak teşebbüs var, bu yüzden ne tanımlayabilirsiniz

{% load compress %} 

<html> 
<head> 
    <!-- test --> 
    {% compress css %} 
    <link rel="stylesheet" type="text/css" media="screen" href="{{ STATIC_URL }}css/styles.css" /> 
    {% endcompress %} 

    {% compress css %} 
    {% block css %}{% endblock %} 
    {% endcompress %} 

    {% compress js %} 
    {% block js %}{% endblock %} 
    {% endcompress %} 
</head> 
<body> 
    {% block body %}{% endblock %} 
</body> 
</html> 

onların sıkıştırılacak kendi css ve javascript. Ne yazık ki, olan bu değil.

python manage.py compress'u çalıştırdığımda (django-compressor şablonlarımı analiz ettim ve sıkıştırılmış javascript ve css kodu oluşturdu), aslında içerdiği css ve javascript dosyalarını bulamıyor.

{% block css %} 
{{ block.super }} 
<link rel="stylesheet" type="text/css" media="screen" href="{{ STATIC_URL }}css/index.css" /> 
{% endblock %} 

sitemde Bu sayfayı ziyaret etmek istediğinizde, ben sıkıştırılmış dosya var olmadığını belirten bir hata alıyorum:

Örneğin, burada sitemin index.html taslak.

Olan bitin, python manage.py compress komutunun base.html'dan devraldığım şablonlarımın teftiş etmediğidir. Ve onları analiz etmediğinden, herhangi bir sıkıştırılmış kod oluşturmuyor.

Bu çalışmayı gerçekten yapmak isterim, çünkü şimdiye kadar bulduğum tek çözüm, açıkça verdiğim her bir şablon dosyasına {% compress %}...{% endcompress %} etiketlerini el ile eklemektir. Sadece her yerde bu kadar kod :(Herhangi bir tavsiye büyük takdir

tekrarlar beri bunu nefret ediyorum.

+0

Sesler benim için sorun, hata belirttiği gibi: dosya yerel dosya sisteminde var mı? S3 ile unutmayın, yerel olarak ve uzaktan kaydedilecek depolama alanını kurmalısınız. –

+0

Şu anda bunu, özel CachedS3BotoStorage sınıfı aracılığıyla django-compressor belgelerinin önerdiği gibi yapıyorum. Bu bölüm iyi çalışıyor (örneğin:% {% block%}} sıkıştırmaya çalışmazsam {% endblock%} snippet). Ayrıca: "python manage.py compress" yönetim komutunu çalıştırdığımda hiçbir hata alamıyorum - yalnızca base.html dosyasından devralan bir sayfayı görüntülemeye çalıştığımda ve css veya js bloklarını geçersiz kıldığımda. – rdegges

cevap

İlgili konular