2015-01-13 15 views
10

: Django {% statik 'yol' %} javascript dosyası benim script.js ise

pic.src = "/static/photos/1.jpg"; // This works 
pic2.src = "{% static 'photos/1.jpg' %}" // Does not work 

Bunun sebebi nedir? Dünyada?

{% load staticfiles %} 
<script src="{% static 'script.js' %}"></script> // This works 

Ve {% yükün Statik Dosyalar%} veya {% yük statik%} geçerli: Benim home.html'nin içinde olduğundan, {% statik 'yol' %} çalışır? Her ikisi de benim için çalışıyor, script.js yüklenir.

+0

Evet, html dosyası bir şablon olduğu için, ancak statik dosyalar bu şekilde işlem görmez. –

+0

Hızlı cevabınız için teşekkürler Simeon! Yani pic.src = "static/photos/1.jpg" tek yol mu? – lucahuy

+0

Eğer javascript'inizin şablonlardan/görünümlerden oluşmasını gerçekten istiyorsanız, bunu kolayca yapabilirsiniz. Ama muhtemelen senin istediğin gibi değil. Muhtemelen, js yığınınızın statik dosyalar olmasını ve ardından

2

Şablonunuzdaki yolu atayabilir ve ardından javascript dosyanızda kullanabilirsiniz.

Şablon:

<script> 
    var url = "{% static 'photos/1.jpg' %}"; 
</script> 

JavaScript:

pic2.src = url 
3

, bu daha uygun olabilir:

<script> 
    var static_url = "{% get_static_prefix %}"; 
    var media_url = "{% get_media_prefix %}"; 
</script> 

Sonra url hem en

tüm javascript dosyaları serbestçe kullanılabilir.

+0

bu, dağıtımda collectstatic ile ilgili bir soruna neden olur. –

+0

@NK Ne tür bir sorun? – knbk

+0

Bunun gibi sorunlara neden olan URL'ler oluşturmayı düşündüm - {% static%} ile oluşturulmayan tüm URL'ler için kaynaklar toplanmıyordu. Fakat sonradan sorunun başka bir şey olduğunu ve bunların muhtemelen işlem sonrası aşamada toplandığını buldum. –