Django Global Stati c Файлы не найдены - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь создать / использовать глобальный css файл для своего проекта, он, кажется, разрешается в правильное местоположение, но он все еще не находит файл.

Соответствующий раздел моего Файл settings.py:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_ROOT = os.path.join(BASE_DIR, 'abcdefg')
STATIC_URL = '/static/'
STATICFILES_DIR = [
     os.path.join(BASE_DIR, 'static')
]

, и в моих установленных приложениях django.contrib.staticfiles.

Моя файловая структура:

Project/
├── abcdefg/
│   ├── admin/
│   ├── App/
├── Project/
│   ├── __init__.py
│   ├── settings/
│   ├── urls.py
│   └── wsgi.py
├── App/
│   └── static
│       └── App
│           └── css
│               └── test.css
│   └── __init__.py
│   └── admin.py
│   └── apps.py
│   └── models.py
│   └── views.py
│
├── manage.py
│
├── static/
│   └── base
|       └── css
|           └── test.css
└── templates/
    └── base.html

Моя база. html просто выглядит так:

{% load static %}

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" href="{% static 'base/css/global.css' %}">
  <title>Title {% block title %}{% endblock %}</title>
</head>
<body>
{% block content %}
  <h1>Test</h1>
{% endblock %}
</body>
</html>

Когда я пытаюсь получить доступ к странице, я получаю следующую ошибку: [08/Feb/2020 11:26:50] "GET /static/base/css/test.css HTTP/1.1" 404 1683, которая указывает, что она указывает на правильное местоположение, но фактически не захватывает файл. Если я поменяю ссылку href в базе. html на {% static 'App/css/test.css %} все работает как положено.

Я добавил местоположение, на которое отображается STATIC_ ROOT, и запустил python manage.py collectstati c безрезультатно.

Я предполагаю, что есть что-то глупое, что я пропускаю в документах, но я, по сути, последовал это видео до Т, и я не получаю глобальный файл для импорта.

Я добавил все соответствующие файлы в GitHub в https://github.com/JVP3122/django_help, так что я не просто показываю немного кода. Кроме того, это не официальный репозиторий для моего проекта, поэтому не имеет значения, что секрет django виден.

1 Ответ

1 голос
/ 08 февраля 2020

Это должен быть STATICFILES_DIRS, а не STATICFILES_DIR. Кроме того, для STATIC_ ROOT было бы лучше установить другую папку, чтобы она не перезаписывала глобальные файлы stati c. Вам нужно создать папку с именем «static_files» в главной директории проекта и изменить эти 2 строки:

STATIC_ROOT = os.path.join(BASE_DIR, 'static_files')
STATICFILES_DIRS = [
    ('global', os.path.join(BASE_DIR, 'static')),
]

Тогда вы сможете загрузить глобальный файл по адресу: {% stati c 'global / base / css / test. css'%}

...