有必要在 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 来优化不必要的查询