【问题标题】:Correct way to use Sekizai addtoblock in a DjangoCMS plugin在 DjangoCMS 插件中使用 Sekizai addtoblock 的正确方法
【发布时间】:2011-12-24 17:23:36
【问题描述】:

我正在开发一个 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 中,而不是它们所属的下面。我在这里错过了什么?

谢谢。

【问题讨论】:

    标签: django django-cms django-sekizai


    【解决方案1】:

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

    一个示例虚拟模板:

    {% 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>
    

    【讨论】:

    • 我不确定这是否值得发布另一个问题,但是当管理员用户登录时,adminmedia js 文件被添加到“js”块中,因此 jquery 被重新定义(这吹走了jquery-ui 和我的库中的 jquery 插件)。有什么方法可以确保 adminmedia 被呈现在块的顶部?
    • 我终于确定对我来说最好的办法是重新安装 django-cms,并在 toolbar.html 文件中稍作调整,根据是否定义 $ 有条件地写入 jQuery javascript 脚本标签。我读到 cms 工具栏正在重新开发中,我希望在我发布这个东西之前有一个升级!
    • 这对我使用 1.5 和 django-cms 2.4.2 不起作用。我将 addtoblock 作为基本模板中的第一个条目,它仍然出现在所有 django-cms javascript 文件之前。
    猜你喜欢
    • 2012-04-06
    • 2021-01-19
    • 2015-01-06
    • 2023-03-03
    • 1970-01-01
    • 2021-06-01
    • 2016-12-15
    • 1970-01-01
    • 2013-05-31
    相关资源
    最近更新 更多