Использовать JS-библиотеку с Django

У меня проблема с использованием библиотеки js с django. Я пытаюсь использовать библиотеку Particle.js для создания фона частиц для домашней страницы, и я пробовал следовать этот учебник.

Я создал particle.json и style.css в своей статической папке.

ОБНОВЛЕННАЯ ВЕРСИЯ (со статическими файлами)

home.html

<!-- templates/home.html --> 
{% load socialaccount %}
{% load account %} 
{% load static %}

<head>
    <link rel = "stylesheet" href = "{% static 'style.css' %}"> </head>

<body>
    <div id = "particles-js">

        {% if user.is_authenticated %}
        <p>Welcome {{ user.username }} !!!</p>


        <a href = "/accounts/logout/" >Logout</a>
        {% else %}
        <a href = "{% provider_login_url 'github' %}">Log In with Github</a>
        <a href = "{% provider_login_url 'twitter' %}">Log In with Twitter</a>
        <a href = "{% provider_login_url 'facebook' %}">Log In with Facebook</a>
        <a href = "{% provider_login_url 'linkedin' %}">Log In with LinkedIn</a>
        {% endif %}
    </div>

    <script src = "https://cdnjs.cloudflare.com/ajax/libs/particlesjs/2.2.2/particles.min.js"></script>
    <script>
        particlesJS.load('particles-js', '{% static 'particles.json' %}', function(){
            console.info('particles.json loaded...');
        });
    </script> </body>

определил статический путь в settings.py

STATIC_URL = '/static/'
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

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

и я мой файл urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url('accounts/', include('allauth.urls')),
    url('', views.Home.as_view(), name='home'),
] + static(settings.STATIC_URL)

При запуске сервера в консоли появляются следующие ошибки:

GET http://127.0.0.1:8000/static/ net::ERR_ABORTED
Uncaught ReferenceError: particlesJS is not defined

Структура проекта:

Использовать JS-библиотеку с Django

Я только начал изучать django, поэтому знаю, что это может показаться глупым вопросом, но есть идеи, что здесь может быть не так?

Я не знаю, почему вы не видите никакой ошибки, но почти уверен, что он не может найти частицы.json или ваши файлы styles.css, поскольку их не должно быть в папке ваших шаблонов. Это статические файлы, и вам нужно убедиться, что вы поместили их в каталог, который может быть найден вашим сервером для статических файлов. Посмотрите на как управлять статическими файлами.

dirkgroten 06.05.2018 15:48
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
1 620
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Django не может проанализировать остаток:

{% static style.css %} это должен быть {% static 'style.css' %} с кавычками

{% static particles.json %} должен быть {% static 'particles.json' %} с кавычками

Спасибо за предложение! Это действительно решило первую проблему, но я все еще получаю вторую ошибку: «ЧастицыJS не определены». Фон теперь красный, но частицы не появляются, так как он не видит js.

KeykoYume 06.05.2018 16:34

опубликуйте эту строку кода в комментарии, позвольте мне посмотреть, как вы это делаете

Lemayzeur 06.05.2018 16:36

у вас есть этот particles.json в вашем статическом каталоге?

Lemayzeur 06.05.2018 16:49

да, particles.json находится в моем статическом каталоге. Можно ли загрузить js-скрипт прямо из источника? (поскольку я загрузил particles.min.js) или это тоже должно быть в статической папке?

KeykoYume 06.05.2018 16:52

Я также добавил в свой статический каталог файл sizes.min.js, и теперь он отлично работает. Большое спасибо!

KeykoYume 06.05.2018 16:59

Я видел, что люди используют его внутри таких ресурсов, как assets/particles.json .. static - это корневой каталог на основе settings, вы можете установить любой путь, как только сделаете это с помощью / .. например, если у вас внутри static, каталог с именем css, а внутри у вас есть style.css, путь будет '/static/css/style.css' -> {% static 'css/style.css' %}

Lemayzeur 06.05.2018 17:00

Рад помочь!

Lemayzeur 06.05.2018 17:01

Другие вопросы по теме