【问题标题】:Javascript in a seperate file not working in Django单独文件中的Javascript在Django中不起作用
【发布时间】:2020-05-12 14:39:12
【问题描述】:

我对 python 和 Django 比较陌生,但对 Javascript/jQuery 有更多的经验。我现在正在使用 Django,并希望在我的 base.html 模板中包含 javascript。我已经包含了指向 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>

在 Chrome 中转到页面源时,我可以单击指向 /static/js/events.js 的链接,然后将显示该文件的源。

这证明javascript被正确包含了,不是吗?但是加载事件永远不会被触发,控制台也不会记录任何内容。我尝试将指向 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>

当我将脚本本身添加到 base.html 时,它确实有效。当我将它放在标题中时它会起作用,当我将它放入正文时它会起作用。

当然,我更喜欢将我的 javascript 放在一个单独的文件中。有人能解释一下这个问题吗?

【问题讨论】:

    标签: javascript python jquery django django-templates


    【解决方案1】:
    <script type="text/javascript" src="{% static 'js/events.js' %}"></script>
    

    如上更正您的代码并在文件顶部添加{% load static %}(如果不存在)。类似的模式也适用于 css 链接

    【讨论】:

    • 别担心,如果我编写 java 脚本也会发生同样的事情):
    猜你喜欢
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多