有必要在 Django 中启动应用程序来加载 javaScript 文件吗?

Posted

技术标签:

【中文标题】有必要在 Django 中启动应用程序来加载 javaScript 文件吗?【英文标题】:Its necessary to start an app in Django to load javaScript files? 【发布时间】:2022-01-22 10:38:11 【问题描述】:

我正在 Django + Python 上制作作品集,并且我已经成功加载了我项目中的所有资产/模板(例如 .css、.jpg、.png 文件),但 javascript 文件“.js”是不工作。

我看到了几个关于这个问题的 Javascript 问题,我尝试了我看到的所有解决方案。

    我在 index.html 文件的开头添加了 % load static % 我还在每次调用文件之前添加了<script src="% static 'assets/js/main.js' %"></script> 我的静态设置如下:
BASE_DIR = Path(__file__).resolve().parent.parent
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'portfolio/static/')
]
    settings.py 文件中似乎一切正常,网站可以加载所有图像、css 等。但正如我之前提到的,javascript 似乎没有加载。 我的 Django 项目中没有创建应用程序,目录树如下:
├── /Desktop/portfolio
├── manage.py
├── portfolio
│   ├── asgi.py
│   ├── __init__.py
│   ├── settings.py
│   ├── static
│   │   ├── assets
│   │   │   ├── css
│   │   │   │   ├── files....
│   │   │   ├── js
│   │   │   │   ├── breakpoints.min.js
│   │   │   │   ├── browser.min.js
│   │   │   │   ├── jquery.min.js
│   │   │   │   ├── jquery.scrollex.min.js
│   │   │   │   ├── jquery.scrolly.min.js
│   │   │   │   ├── main.js
│   │   │   │   └── util.js
│   │   │   ├── sass
│   │   │   │   ├── libs
│   │   │   │   │   ├── scss files ..
│   │   │   └── webfonts
│   │   │       ├── webfonts files..
│   │   └── images
│   │       ├── .jpg files ...
│   ├── templates
│   │   └── index.html
│   ├── urls.py
│   ├── views.py
│   └── wsgi.py
├── Procfile
├── README.md
├── requirements.txt
└── static
   ├── admin 
   ├── assets
   │   ├── css
   │   │   ├── fontawesome-all.min.css
   │   │   ├── images
   │   │   │   ├── ie
   │   │   │   │   └── grad0-15.svg
   │   │   │   └── overlay.png
   │   │   └── main.css
   │   ├── js
   │   │   ├── breakpoints.min.js
   │   │   ├── browser.min.js
   │   │   ├── jquery.min.js
   │   │   ├── jquery.scrollex.min.js
   │   │   ├── jquery.scrolly.min.js
   │   │   ├── main.js
   │   │   └── util.js
   │   ├── sass
   │   │   ├── libs
   │   │   │   ├── libs files
   │   └── webfonts
   │       ├── webfonts files 
   └── images
       ├── .jpg files

有人可以帮助我吗?非常感谢

【问题讨论】:

你能分享你的索引HTML吗....? 【参考方案1】:

如果你在 JS 文件中使用模块,你可以尝试将 type="module" 放在脚本标签中。

<script type="module" src="% static 'assets/js/main.js' %"></script>

【讨论】:

【参考方案2】:

您的目录结构似乎不正确。你确实需要一个应用程序。到目前为止,您创建的是一个项目,它们的区别在 What’s the difference between a project and an app in Django world? 中注明。

【讨论】:

以上是关于有必要在 Django 中启动应用程序来加载 javaScript 文件吗?的主要内容,如果未能解决你的问题,请参考以下文章

解析方法时加载约束冲突

在 Django REST framework 善用 SerializerMethodField 来优化不必要的查询

防止在 django 中提交按钮后重新加载

我在 django 中的静态文件不会被重新加载,除非我每次重新启动电脑时都重命名它们

Django——Ajax

文件更改时如何自动重新加载Django?