8

私は DjangoCMS プラグインに取り組んでいます。これには、JavaScript ファイル自体が含まれています。プラグインの Javascript は、サイトの他の部分と同じライブラリに依存しています。だから、ここに私が今持っているものの概念的な部分があります:

Basetemplate.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 に答える