Flask - различные файлы Javascript для каждого шаблона - PullRequest
0 голосов
/ 21 сентября 2018

Я работаю над приложением, созданным с помощью колбы и использующим шаблоны.У меня есть файл layout.html с тегами заголовков и ссылками js / css, которые я импортирую на каждую страницу, используя:

{% extends "layout.html" %}
{% block content %}
    {# My content #}
{% endblock content %}

Это работает, но теперь мне нужно ссылаться на другие файлы JS только для определенного HTMLфайлы и интересно, как правильно сделать это с помощью колбы.

Ответы [ 4 ]

0 голосов
/ 25 сентября 2018

Вы можете иметь все уникальные теги Javascript в файле layout.html, а затем для каждой конечной точки использовать операторы if else, чтобы отобразить нужный тег для каждой страницы.Конечная точка - это просто имя функции просмотра.

{% if request.endpoint == 'index' %}
    <script src="{{ url_for('static', filename='JS/file.js') }}"></script>
{% elif request.endpoint == 'another-endpoint' %}
    <script src="{{ url_for('static', filename='JS/some_other_file.js') }}"></script>
0 голосов
/ 21 сентября 2018

Если я не ошибаюсь, вы хотите, чтобы на некоторых ваших HTML страницах была ссылка на код JavaScript.Для этого просто добавьте тег <script> на этой конкретной странице HTML следующим образом:

<script src="{{ url_for('static', filename='JS/some_file.js') }}"></script>

где- файл JavaScript хранится в: static -> JS -> some_file.js

0 голосов
/ 21 сентября 2018
{% block javascript %}
<script type="text/javascript">
    {% include "some-js-file.js" %}
</script>
{% endblock %}

Создайте блок кода, как блок выше.

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

0 голосов
/ 21 сентября 2018

Вы можете просто включить свои <script> теги в файл HTML, где они вам нужны.Таким образом, JavaScript будет импортирован только тогда, когда эта конкретная страница загружена.

Пример:

{% extends "layout.html" %}
{% block content %}
   {# My content #}
{% endblock content %}
{% block scripts %}
  <script scr="..."></script>
{% endblock scripts %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...