gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 07:08:30 27 4
gpt4 key购买 nike

问题在于,当 django-compressor 编译为 .js 文件的 CoffeeScript 文件中引用 {{ STATIC_URL }} 时,它无法正确加载。

在我的 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">

因此我的问题是,如何让 Django 识别 CoffeeScript 文件中的 {{ STATIC_URL }} ?非常感谢您的帮助!

最佳答案

您的[.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" />"

关于django - 在 Django 中使用模板变量和 django-compressor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9287583/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com