使用Django中的模板变量和django-compressor

时间:2012-02-15 03:44:23

标签: django coffeescript django-templates django-compressor

问题是当{x 1}}在django-compressor编译为.js文件的coffeescript文件中被引用时,它没有正确加载。

在我的django模板中,我有

{{ STATIC_URL }}

//this loads fine {{ STATIC_URL }} {% load compress %} {% compress js %} //STATIC_URL in here does not load <script type="text/coffeescript" charset="utf-8" src="/static/stuff.coffee" /> {% endcompress %} 我有

stuff.coffee

然后浏览器中呈现的HTML是

$('#test').prepend '<img src="{{ STATIC_URL }}images/image.png" />'

因此我的问题是,如何让Django识别coffeescript文件中的/static/ <img id="theImg" src="{{ STATIC_URL }}images/image.png"> ?非常感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

您的[.js|.coffee]文件不是django模板,不会被评估。您需要使用django的模板渲染器预处理脚本,或者在html模板中设置变量,并将其分配给javascript窗口属性。 E.g:

在你的django模板中:

window.staticUrl = "{{ STATIC_URL }}";

{% load compress %}
{% compress js %}

//STATIC_URL in here does not load
<script type="text/coffeescript" charset="utf-8" src="/static/stuff.coffee" />  

{% endcompress %}

stuff.coffee

$('#test').prepend "<img src="#{window.staticUrl}images/image.png" />"