Django: импорт JavaScript внутри шаблона не работает - PullRequest
0 голосов
/ 05 ноября 2018

Я столкнулся с новой проблемой с Джанго. Я занимаюсь разработкой веб-сайта (поэтому я не на стадии разработки) и хочу использовать JavaScript в своем шаблоне.

Когда я пишу свой скрипт прямо в шаблон и связываю его с кнопкой, скрипт работает. Но когда я хочу импортировать его из файла .js, он больше не работает.

Кажется, мой статический каталог работает правильно, я могу импортировать css или даже изображения из него.

Вот мои файлы:

base.html:

<!DOCTYPE html>
<html lang="en">

    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

        {% load static %}

        <title>Title</title>
        <link rel="stylesheet" href="{% static 'webcalendar/css/bootstrap.css' %}">
        <link rel="stylesheet" href="{% static 'webcalendar/css/style.css' %}">

        {% block script %}  {% endblock %}
    </head>

    <body>

        {% block content %}  {% endblock %}

    </body>
</html>

fonction_test.html: где скрипт написан непосредственно в шаблоне

{% extends 'webcalendar/base.html' %}

{% block script %}

    <script type="text/javascript">

        function printInConsole(){
                console.log("PRINTING...")
        }

    </script>

{% endblock %}

{% block content %}

    <button  onclick="printInConsole()" class="btn btn-warning">Print in console</button>

{% endblock %}

Так что предыдущий работает .

Но если я пытаюсь импортировать скрипт из файла .js в статическую папку моего приложения, он не работает.

calendar.js:

function printInConsole(){
            console.log("PRINTING...")
    }

new fonction_test.html: , где я пытаюсь импортировать скрипт из .js

{% extends 'webcalendar/base.html' %}
{% load static %}

{% block script %}

    <script type="text/javascript" scr="{% static 'webcalendar/js/calendar.js' %}"></script>

{% endblock %}

{% block content %}

    <button  onclick="printInConsole()" class="btn btn-warning">Print in console</button>

{% endblock %}

Я получаю следующую ошибку:

ReferenceError: printInConsole is not defined

Я, должно быть, сделал что-то не так, у вас есть какие-либо советы, чтобы решить эту проблему?

1 Ответ

0 голосов
/ 05 ноября 2018

По-моему, ваша проблема проистекает из вашего синтаксиса:

<script type="text/javascript" scr="{% static 'webcalendar/js/calendar.js' %}"></script>

Пожалуйста, измените scr="" на src="

<script type="text/javascript" src="{% static 'webcalendar/js/calendar.js' %}"></script>

Если ваша статика четко определена, она должна работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...