#django #sass #django-staticfiles
#django #sass #django-staticfiles
Вопрос:
пытаюсь интегрировать sass в мой проект django3.1. Я пытался реализовать sass с помощью других методов, таких как Django-compressor, но и там не смог заставить его работать. Поэтому любые предложения по достижению конечной цели работы sass будут оценены.
выполните следующие действия https://terencelucasyap.com/using-sass-django / Я попытался реализовать Django-sass-processor, но когда я перехожу на домашнюю страницу, это выдает ошибку Unable to locate file style.scss while rendering tag 'sass_src' in template app/index.html
Settings.py
INSTALLED_APPS = [
...
#SASS
'sass_processor',
]
...
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'sass_processor.finders.CssFinder',
]
STATIC_ROOT = os.path.join(BASE_DIR, "static")
STATIC_URL = '/static/'
#DJANGO SASS
SASS_PROCESSOR_ROOT = STATIC_ROOT
base.html
{% load sass_tags %}
{% load static %}
...
<link href="{% sass_src 'style.scss' %}" rel="stylesheet" type="text/css" />
сайт, похоже, нормально работает на странице администратора.
Я запустил collectstatic, и CSS администратора находится в той же папке, что и style.scss, поэтому я не думаю, что это проблема со STATIC_ROOT, но я не уверен, где возникает ошибка.
дерево
../ROOT/
├── db.sqlite3
├── manage.py
├── README.md
├── requirements.txt
├── static
│ ├── admin
│ └── style.scss
├── PROJECT
│ ├── asgi.py
│ ├── __init__.py
│ ├── __pycache__
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── APP
├── admin.py
├── apps.py
├── forms.py
├── __init__.py
├── migrations
├── models.py
├── __pycache__
├── templates
│ └── APP
│ ├── base.html
│ ├── cityFrom.html
│ └── index.html
├── tests.py
├── urls.py
└── views.py
Чего мне не хватает, чтобы Django не смог найти файл?
Спасибо за любые советы!
Ответ №1:
Я столкнулся с той же проблемой, и в моем случае мне пришлось настроить параметр STATICFILES_DIRS следующим образом:
STATICFILES_DIRS = [ BASE_DIR / 'static' ]
ОБРАТИТЕ ВНИМАНИЕ, что конфигурация STATIC_ROOT в этом случае не требуется
django-sass-processor находит файлы с помощью средств поиска. смотрите здесь:
https://github.com/jrief/django-sass-processor/blob/master/sass_processor/storage.py#L26
Документация модуля (как вы упомянули) предлагает настроить их следующим образом:
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'sass_processor.finders.CssFinder',
]
и без STATICFILES_DIRS FileSystemFinder ничего не находит.
Вероятно, проблема связана с django 3.x.. или, может быть, какой-то finder отсутствует в приведенном выше списке?