我在我的html页面中包含了一个js文件(例如:application.js)但我无法在js文件中使用django模板标签,有没有办法在外部js文件中直接使用django模板标签?
答案 0 :(得分:4)
只有你像模板一样解析JS。
如果你需要JS中的一些变量(比如STATIC_URL
),可以使用
<script>window.staticUrl = "{{ STATIC_URL }}"</script>
或
<html data-static-url="{{ STATIC_URL }}">
在您的基本模板中
答案 1 :(得分:2)
不,如果您将application.js文件包含为
,则不会<script src="application.js"></script>
Django的模板加载器将把它呈现给html代码的最终输出。 Django模板标签/过滤器仅在模板页面上呈现 - 它们不适用于外部源。
您可以尝试将JavaScript文件作为文本加载到模板中。因此,您不必引用外部文件,而是将文件中的代码“粘贴”到模板中。
答案 2 :(得分:1)
您可以将javascript作为动态页面提供。创建新的django视图以提供它(或使用django.views.simple.direct_to_template)并将模板与您的实际javascript内容一起使用。