8

我正在开发一个 DjangoCMS 插件,它本身包含一个 javascript 文件。该插件的 Javascript 依赖于与站点其余部分相同的库。所以,这是我现在所拥有的概念部分:

基本模板.html

{% load cms_tags sekizai_tags and_a_bunch_of_other_stuff %}
<html>
...
<head>
{% render_block "css" %}
</head>
<body>
...
{% addtoblock "js" %}[jquery]{% endaddtoblock %}
{% addtoblock "js" %}[google api, data, more cool stuff like jqplot.]{%endaddtoblock%}
{% addtoblock "js" %}[my site's library js.] {% endaddtoblock %}

{% render_block "js" %}
</body>
</html>

现在在为我的 DjangoCMS 自定义插件加载的模板中,

great_calendar_plugin_template.html

{% load sekizai_tags and_a_couple_other_things %}
{% addtoblock "js" %}[plugin javascript file dependency]{%endaddtoblock %}
{% addtoblock "js" %}[plugin javascript file]{% endaddtoblock %}
....

因此,无论我做什么,插件 javascript 文件都被放置在 JQuery 和所有其他依赖项之上的最终 HTML 中,而不是它们所属的下面。我在这里想念什么?

谢谢。

4

1 回答 1

5

您可以通过将“基本”addtoblock调用(jquery 等)尽可能放在基本模板的顶部来解决此问题。重要的是它您调用和{% placeholder %}标记之前,这在大多数网站上意味着在您的开始<body>标记之前。

一个示例虚拟模板:

{% load cms_tags sekizai_tags and_a_bunch_of_other_stuff %}

{% addtoblock "js" %}[jquery]{% endaddtoblock %}
{% addtoblock "js" %}[google api, data, more cool stuff like jqplot.]{%endaddtoblock%}
{% addtoblock "js" %}[my site's library js.] {% endaddtoblock %}

<html>
    <head>
        {% render_block "css" %}
    </head>
    <body>
        {% placeholder "mycontent" %}

        {% render_block "js" %}
    </body>
</html>
于 2011-12-24T22:42:52.603 回答