首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Django没有正确加载我的javascript文件?

为什么Django没有正确加载我的javascript文件?
EN

Stack Overflow用户
提问于 2021-01-15 15:30:49
回答 2查看 133关注 0票数 0

我是Django的新手,我正在尝试使用dropzone.js实现拖放文件上传。我跟着本教程开始。Dropzone正在正常工作,文件被正确地上传和存储,我的问题是定制了dropzone实例。我创建了第二个javascript文件来创建自定义的下拉区域,就像教程显示的那样,并将其包含到django模板中。但是由于某些原因,这不会改变任何东西,不管有没有定制的javascript文件,下拉区域看起来都是一样的。

javascript文件:

代码语言:javascript
运行
复制
Dropzone.autoDiscovery = false;

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

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

代码语言:javascript
运行
复制
{% 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>

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

因为我不知道任何javascript,所以我不确定我是否在javascript文件中犯了错误,或者它是否是一个更深层次的问题。任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-15 17:03:05

好的,我发现了我的错误,这是由人为错误引起的快速修复。

  1. @schillingt回答说,我不得不将main.js包含放在dropzone.js之后
  2. 我把Dropzone.autoDiscover = false;拼错为Dropzone.autoDiscovery = false;
  3. 我用的是=而不是:在main.js的after dictDefaultMessage

最终main.js:

代码语言:javascript
运行
复制
var myDropzone = new Dropzone("#drop", {
    dictDefaultMessage: "Upload your PDF here",
    clickable: false,
    url: "/upload",
    maxFiles: 1,
    acceptedFiles: ".pdf",
});

Django最终模板:

代码语言:javascript
运行
复制
{% 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>
票数 0
EN

Stack Overflow用户

发布于 2021-01-15 15:33:40

您需要在main.js之前加载下拉区域文件,因为main.js要求dropzone成员存在。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65738907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档