Javascript в отдельном файле не работает в Django - PullRequest
0 голосов
/ 27 января 2020

Я относительно новичок в python и Django, но у меня больше опыта работы с Javascript / jQuery. Сейчас я работаю с Django и хочу включить javascript в свою базу. html -шаблон. Я включил ссылку на jQuery CDN. Заголовок выглядит следующим образом:

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Interceptie kennisbank</title>

    <link rel="stylesheet" href={% static "css/reset.css" %}>
    <link rel="stylesheet" href={% static "css/style.css" %}>

    <!-- link to jQuery: -->
    <script
        src="https://code.jquery.com/jquery-3.4.1.min.js"
        integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
        crossorigin="anonymous">
    </script>

    <!-- javascript event handlers: -->
    <script type="text/javascript" href={% static "js/events.js" %}></script>
</head>

Когда go к источнику страницы в Chrome, я могу щелкнуть ссылку на /static/js/events.js и источник этого файла. будет отображаться.

enter image description here

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Interceptie kennisbank</title>

    <link rel="stylesheet" href={% static "css/reset.css" %}>
    <link rel="stylesheet" href={% static "css/style.css" %}>

    <!-- link to jQuery: -->
    <script
        src="https://code.jquery.com/jquery-3.4.1.min.js"
        integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
        crossorigin="anonymous">
    </script>

    <script>
        jQuery( window ).on( 'load', function(){
            console.log('3. Javascript geladen');
        });
    </script>

    <!-- javascript event handlers: -->
    <script type="text/javascript" href={% static "js/events.js" %}></script>
</head>

Когда я добавляю сам скрипт в базу. html is делает работать хоть. Он работает, когда я помещаю его в заголовок, и работает, когда я помещаю его в тело.

Конечно, я предпочитаю помещать свой javascript в отдельный файл. Кто-нибудь может пролить свет на этот вопрос?

1 Ответ

2 голосов
/ 27 января 2020
<script type="text/javascript" src="{% static 'js/events.js' %}"></script>

исправьте ваш код, как указано выше, и добавьте {% load static %} в верхней части файла, если его там нет. Аналогичный шаблон применим для css ссылок также

...