把django模板标签放在静态文件中

时间:2013-12-20 19:12:51

标签: python django django-templates django-staticfiles

我想在js静态文件中放置一些模板标签进行配置,它将被包含在html文件中。我该如何预编译文件?有什么办法像红宝石 是js.erb文件?

2 个答案:

答案 0 :(得分:0)

好吧,没有什么可以阻止你这样做,也许就是这样:

page.html模板:

<script>
    {% include "settings.js" %}
</script>

settings.js模板:

var SETTINGS = {
    'MEDIA_URL': '{% get_media_url_example %}',
    ...
};

如果您不需要内联JS代码,但需要单独的文件,则可以使用Django Compressor,它可以从内联JavaScript生成压缩的静态文件。文档中的示例用法:

{% load compress %}

{% compress js %}
    <script src="/static/js/one.js"></script>
    <script>obj.value = "value";</script>
{% endcompress %}

答案 1 :(得分:0)

你可以渲染任何东西:

>>> from django.template import Context, Template
>>> t = Template("My name is {{ person.first_name }}.")
>>> d = {"person": {"first_name": "Joe", "last_name": "Johnson"}}
>>> t.render(Context(d))
"My name is Joe."

https://docs.djangoproject.com/en/1.6/ref/templates/api/#rendering-a-context