Загрузка внешнего скрипта с помощью директивы шаблона jinja2

Я очень новичок в jinja2 и использовании шаблонов в целом, поэтому мне было интересно, есть ли простой способ загрузить внешний javascript , Я думал об использовании:

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

Но я не могу не спросить:

Есть ли способ загрузки этого скрипта непосредственно из директивы шаблона?

22
задан Sylhare 17 April 2018 в 21:48
поделиться

1 ответ

У вас есть два варианта выбора - первый - это то, как вы это сделали - просто добавьте соответствующую разметку в шаблон (или блок, если вы хотите иметь возможность переопределить ее в шаблонах, расширяющих ваш первый шаблон).

Второй способ - использовать функцию 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 перед отправкой - если вы не используете динамическое содержимое. вы просто будете обрабатывать файл без надобности для каждого запроса - и если вы используете библиотеку шаблонов javascript с синтаксисом Jinja2, тогда вероятны проблемы.

35
ответ дан 29 November 2019 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: