Javascript не работает должным образом в проекте djagno

Хотя мой код работает при использовании вне проекта Django, когда я помещаю его внутрь проекта, он ведет себя странно. Точнее, объект document не имеет тела, а только голову моего html. Таким образом, я не могу получить доступ к его классам. Я предполагаю, что что-то не так в связывании html и js файлов.

settings.py

STATIC_URL = 'static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>index.html</title>
    {% load static %} 
    <link rel="stylesheet" href="{% static 'style.css' %}"/>
    <script src="{% static 'script.js' %}"></script> 
</head>
<body>
    HelloWorld!
</body>
</html>

script.js

console.log(document.getElementsByTagName('html')[0].innerHTML)

Возвращение script.js:

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>index.html</title>
     
    <link rel="stylesheet" href="/static/style.css">
    <script src="/static/script.js"></script></head>

Вам следует подождать, пока ваш HTML полностью загрузится и будет разобран, прежде чем обращаться к нему.

Просто оберните свой сценарий по

window.addEventListener('DOMContentLoaded', (event) => {
    console.log(document.getElementsByTagName('html')[0].innerHTML)
});

или поместите свой скрипт прямо перед закрывающим тегом </body>.

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