У меня возникли проблемы с загрузкой статических файлов в приложение Django. Чего мне не хватает, я не понимаю

#django #web #web-development-server

#джанго #паутина #веб-разработка-сервер

Вопрос:

 {% extends 'base.html' %}
 

{% статическая нагрузка %}

{% заголовок блока %}Главная страница{% конечный блок %}

{% содержание блока %}

Шаблон домашней страницы

{% конечный блок %}

Комментарии:

1. Пожалуйста, не могли бы вы подробнее указать свою проблему

2. Во-первых, я использую настройки: STATIC_URL = "/static/" STATICFILES_DIR = [os.path.join(BASE_DIR, «static») LOGIN_URL = «учетная запись: вход» LOGIN_REDIRECT_URL = «public:index» LOGOUT_REDIRECT_URL = «public:index» Во-вторых, я создал отдельную папку с именем Static, куда я поместил эти файлы (css, js и изображения). Я даже добавил имя в раздел установленных приложений ‘django.contrib.staticfiles’. Теперь консоль выдает 404 для каждого загружаемого файла. Это проблема с версией Django?

Ответ №1:

Вы не показываете свой settings.py код, но решением может быть настройка статической поддержки, дополнительная информация https://docs.djangoproject.com/en/3.1/howto/static-files /:

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

помните, что у вас должна быть создана статическая папка, так как именно в ней django будет искать статические файлы, теперь нужно создать html-файл, который будет нашей базой:

 {% load static %}

<!DOCTYPE html>
<html lang="en">

<head>
    {% block title %}{% endblock %}
    <link rel="stylesheet" href="{% static 'css/styled.css' %}">
</head>

<body>
    {% block content %}
    {% endblock %}
</body>

</html>
 

и используя наш базовый HTML-файл, вы должны сделать следующее:

 {% extends 'base.html' %}

{% block title %}Your title{% endblock %}

{% block content %}
    <!-- Your content -->
{% endblock %}
 

Комментарии:

1. я делаю настройки соответственно, как вы упомянули. Не могли бы вы заглянуть в мой settings.py код, в котором я делаю ошибку. Я уже поделился кодом.

2. в вашем случае я бы:

3. LOGIN_REDIRECT_URL = ‘public:index’ LOGOUT_REDIRECT_URL = ‘account:login’

4. удалить URL-адрес входа

5. По-прежнему консоль не может загрузить файлы JS и изображений, которые я хочу импортировать.

Ответ №2:

 INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'website.apps.accounts',]

STATIC_URL = "/static/"
STATICFILES_DIR = [
os.path.join(BASE_DIR, "static")]
LOGIN_URL = "account:login"
LOGIN_REDIRECT_URL = "public:index"
LOGOUT_REDIRECT_URL = "public:index"