Необходимо ли запускать приложение в Django для загрузки файлов javaScript?

Я делаю портфолио на Django + Python, и я успешно загрузил все активы/шаблоны из моего проекта, (такие как .css, .jpg, .png файлы), но javascript файлы '.js' не работают.

Я видел несколько вопросов об этой проблеме с Javascript, и я попробовал все решения, которые я видел.

  1. i have the {% load static %} putted in the beginning of my index.html file
  2. i also putted the <script src="{% static 'assets/js/main.js' %}"></script> before each call to the files
  3. my static settings are the following:
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/')
]
  1. everything seems to be OK in the settings.py file , and the website can load all the images, css, etc.. but as i mentioned before, the javascript seems to not loading.
  2. i don't have an app created in my Django project, the dir tree is the following:
├── /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

Кто-нибудь может мне помочь? Большое спасибо

Если вы используете модуль в JS файле, вы можете попробовать поставить type="module" в теге script.

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

Ваша структура каталогов кажется неправильной. Вам действительно нужно приложение. То, что вы создали до сих пор, является проектом, а между ними есть разница, как отмечено в Какая разница между проектом и приложением в мире Django?.

Вернуться на верх