3

問題は{{ STATIC_URL }}、django-compressorが.jsファイルにコンパイルするcoffeescriptファイルで参照されたときに正しくロードされないことです。

私のdjangoテンプレートには、

//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私は持っています

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

次に、ブラウザでレンダリングされたHTMLは

/static/
<img id="theImg" src="{{ STATIC_URL }}images/image.png">

{{ STATIC_URL }}したがって、私の質問は、Djangoにcoffeescriptファイル内のを認識させるにはどうすればよいですか?助けてくれてありがとう!

4

1 に答える 1

3

[.js|.coffee]ファイルは django テンプレートではないため、評価されません。スクリプトを django のテンプレート レンダラーで前処理するか、変数を html テンプレートに設定して、それを javascript ウィンドウ プロパティに割り当てる必要があります。例えば:

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" />"
于 2012-02-15T11:40:39.547 に答える