Masz tu dwie możliwości - pierwszą jest sposób, w jaki to zrobiłeś - po prostu dodaj odpowiedni znacznik do szablonu (lub bloku, jeśli chcesz mieć możliwość przesłonięcia go w szablonach, które rozszerzają twój pierwszy szablon .)
Drugim sposobem jest użycie Jinja2 za include
funkcja:
{% block javascript %}
<script type="text/javascript">
{% include "myscript.js" %}
</script>
<!-- The contents of myscript.js will be loaded inside the script tag -->
{% endblock %}
zaletą korzystania include
że Jinja2 przetwarza javascript przed włączeniem go - co oznacza, że można mieć zmienne w JavaScript, który zmieniać w zależności od stanu twojego programu.
Wada polegająca na użyciu include
w ten sposób jest taka sama - Twój plik .js
zostanie uruchomiony przez serwer Jinja2, zanim zostanie wysłany - jeśli nie korzystasz z zawartości dynamicznej, przetwarzanie pliku będzie niepotrzebne dla każdego żądania - - i jeśli używasz biblioteki szablonów javascript ze składnią Jinja2, to problem jest prawdopodobny.
Więc to zasadniczo będzie zawierać wszystko wewnątrz pliku myscript.js pomiędzy tymi tagami, mam rację? Nie ma powodu, dla którego nie mógłbym użyć tego pliku tekstowego lub czegoś innego? – kirbuchi
@kirbuchi - tak, dokładnie. Obowiązują te same kompromisy. –
Nice! bardzo dziękuję – kirbuchi