Не удается найти файл при отображении тега ‘sass_src’ в шаблоне

#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 отсутствует в приведенном выше списке?