繁体   English   中英

为什么 Django 不能正确加载我的 javascript 文件?

[英]Why doesn't Django load my javascript file correctly?

我是 Django 的新手,我正在尝试使用dropzone.js实现拖放文件上传。 我是按照本教程开始的。 Dropzone 工作正常,文件正在正确上传和存储,我的问题与 dropzone 实例的自定义有关。 我创建了第二个 javascript 文件来创建我的自定义 dropzone,如教程所示,并将其包含到 django 模板中。 但是由于某种原因,这并没有改变任何东西,无论是否定制 javascript 文件,dropzone 看起来都完全相同。

javascript 文件:

Dropzone.autoDiscovery = false;

const dropzone = new Dropzone("#drop", {
    dictDefaultMessage = "Upload your PDF here",
    clickable: false,
    url: "/upload",
    maxFiles: 1,
    acceptedFiles: ".pdf",
});

django 模板文件我试图将脚本包含到:

{% load static %}

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>PDF2Notes</title>
  </head>
  <body>
    <form method="POST" action="/upload" class="dropzone dz" id="drop">
      {% csrf_token %}
      <div class="fallback">
        <input name="file" type="file">
      </div>
    </form>

    <!--default stylesheet-->
    <link rel="stylesheet" type="text/css" href="{% static 'converter/style.css' %}">
    <script type="text/javascript" src="{% static 'converter/main.js' %}"></script>

    <!--dropzone js & css-->
    <link rel="stylesheet" tpye="text/css" href="{% static 'converter/dropzone/dist/dropzone.css' %}">
    <script type="text/javascript" src="{% static 'converter/dropzone/dist/dropzone.js' %}"></script>
  
  </body>
</html>

我的 static 文件目录设置正确,我的所有其他 static 文件加载没有问题,并且从命令提示符[15/Jan/2021 15:17:16] "GET /static/converter/main.js HTTP/1.1" 304 0可以看到文件被找到,因为 304 代表Not Modified

由于我不知道任何 javascript,我不确定我是否在 javascript 文件中犯了错误,或者它是否是一个更深层次的问题。 任何帮助表示赞赏。

您需要在 main.js 之前加载 dropzone 文件,因为 main.js 需要 Dropzone 成员存在。

好的,所以我发现了我的错误,这是一个快速修复,一如既往,是由人为错误引起的。

  1. 正如@schillingt 回答的那样,我必须将 main.js 包含在 dropzone.js 之后

  2. 我拼错Dropzone.autoDiscover = false; 作为Dropzone.autoDiscovery = false;

  3. 在 main.js 中的dictDefaultMessage之后,我有一个=而不是:

最终的 main.js:


var myDropzone = new Dropzone("#drop", {
    dictDefaultMessage: "Upload your PDF here",
    clickable: false,
    url: "/upload",
    maxFiles: 1,
    acceptedFiles: ".pdf",
});

最终 Django 模板:

{% load static %}

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>PDF2Notes</title>
  </head>
  <body>
    <form method="POST" action="/upload" class="dropzone dz" id="drop">
      {% csrf_token %}
      <div class="fallback">
        <input name="file" type="file">
      </div>
    </form>

    <!--dropzone js & css-->
    <link rel="stylesheet" type="text/css" href="{% static 'converter/dropzone/dist/dropzone.css' %}">
    <script type="text/javascript" src="{% static 'converter/dropzone/dist/dropzone.js' %}"></script>

    <!--default stylesheet-->
    <link rel="stylesheet" type="text/css" href="{% static 'converter/style.css' %}">
    <script type="text/javascript" src="{% static 'converter/main.js' %}"></script>

  </body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM