当前位置: 首页 > 面试题库 >

使用jinja2模板指令加载外部脚本

柴砚文
2023-03-14
问题内容

我对jinja2和模板的使用非常陌生,所以我想知道是否有一种简单的方法来加载外部javascript。我在考虑使用:

{% block javascript %}
    <script src="myscript.js"></script>
{% endblock %}

但我不禁要问:

有没有一种方法可以直接从模板指令中加载此脚本?


问题答案:

您有两种选择-第一种是您的选择方式-只需将适当的标记添加到模板中即可(如果希望在扩展第一个模板的模板中覆盖它,则可以添加一个块)。

第二种方法是使用Jinja2的include功能:

{% block javascript %}
    <script type="text/javascript">
        {% include "myscript.js" %}
    </script>
    <!-- The contents of myscript.js will be loaded inside the script tag -->
{% endblock %}

使用的好处include是Jinja2将在包含javascript之前对其进行处理-这意味着您可以在javascript中根据程序状态更改变量。

include以这种方式使用的缺点是相同的-您的.js文件将在发送前通过Jinja2运行-如果您不使用动态内容,则只会为每个请求不必要地处理文件-
并且如果您正在使用具有Jinja2语法的javascript模板库,则可能会出现问题。



 类似资料:
  • 问题内容: 我想做的是推迟为指令加载角度js模板,直到我真正需要它为止。我什至根本不需要它。有没有一种方法可以只在需要时才加载指令的模板。服务会成为这样做的方式吗?我的应用程序已经加载了很多指令模板,除非我需要,否则我希望避免加载太多的东西。当前的确切问题是为登录表单加载模板。如果用户单击按钮,但他/她未登录,则我要slideOpen(使用jQuery)登录表单。 问题答案: 在绝大多数情况下,动

  • 问题内容: 我有一个递归的Angular指令,该指令使用模板变量并在函数中进行编译。 问题是,我的模板已经变得很长且不受控制,我想将其外部化到一个外部HTML文件中(这也将使其更易于自动缩进)。 您如何将外部模板加载到可以在内部使用的指令中? 我已经看过了,但是那不能让我命名变量并将其传递给函数。 和 问题答案: 您可以使用该服务获取模板。这是一项便捷服务,该服务还将模板缓存在中,因此仅发出一个请

  • 我正在使用SpringBoot和thymeleaf从html模板生成文档。 随着模板的不断变化,我希望ti从外部加载模板,只是从外部添加或删除模板,而不是重新部署应用程序。 作为POC,使用/resources文件夹时效果良好。 这就是错误: 解析模板“凭证”时出错,该模板可能不存在,或者任何已配置的模板解析程序都无法访问该模板 这就是背景: applycation.yml 这是我的方法:其中te

  • wx:if 预期: any 用法: 根据表达式的值的 truthiness 来有条件地渲染元素。在切换时元素及它的数据绑定 / 组件被销毁并重建。 注意:如果元素是 <block/>, 注意它并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性。 WARNING 当和 wx:if 一起使用时,wx:for 的优先级比 wx:if 更高。详见列表渲染教程 参考: 条件渲染 -

  • 问题内容: 我必须遵循以下方案: python字典的python列表列表中的 每个元素都是一个python字典,看起来像这样: 现在,我希望所有字典作为主模板中的列表。但是,每个词典的内容应由子模板呈现。应使用哪种模板来呈现内容,应由字典的type变量定义。 关于使用Jinja2如何完成此操作的任何提示(如果有帮助,我正在通过Flask使用它。) 谢谢! 问题答案: 如果有人需要它: 然后可以在模

  • 问题内容: 我从Flask的Jinja2模板提供动态页面。现在,我在脚本标签内定义客户端模板,例如Jinja2克隆Nunjucks。问题是,客户端模板具有类似语法该Flask’s的 Jinja2的解释,而不是可以解释渲染的逐字。 如何使整个脚本块逐字呈现? 问题答案: 你可以禁用块内标签的解释: