单独文件中的 Javascript 在 Django 中不起作用
2020-01-27
87
我对 python 和 Django 比较陌生,但对 Javascript/jQuery 更有经验。我现在正在使用 Django,并希望在我的 base.html 模板中包含 javascript。我已包含指向 jQuery cdn 的链接。head 部分如下所示:
<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 放在单独的文件中。有人可以解释一下这个问题吗?
1个回答
<script type="text/javascript" src="{% static 'js/events.js' %}"></script>
按照上述方法更正您的代码,并在文件顶部添加
{% load static %
(如果不存在)。类似的模式也适用于 css 链接
bmons
2020-01-27