Два файла .css в одной папке, но только один из них может быть найден Django
Как указано в названии. Пожалуйста, обратитесь к изображению ниже:
Оба css файла находятся в одной папке, и в файле шаблона я копирую строку ссылки, просто изменив имя файла. Почему файл abc.css не может быть найден, как показано на экране командной строки? Я просто не могу понять.
Также не найден еще один файл изображения, тоже загадка для меня.
STATIC_URL
не связана с тем, в какой папке вы храните изображения, она связана с URL файла, расположенного на сервере. Допустим, у нас есть изображение foo.png
, которое отображается где-то на сайте. Когда вы щелкните правой кнопкой мыши на изображении и откроете его в новой вкладке, URL изображения будет выглядеть примерно так http://localhost:8000/static/foo.png
.
Вы хотите заставить Django искать каталоги статических файлов так, чтобы Django впоследствии собирал их в другой каталог. Допустим, вы храните статические файлы для всего проекта в папке static
, расположенной в корне проекта, тогда вы должны определить следующую настройку в settings.py
:
# Make sure to import os first
import os
# ...
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
Это означает, что Django также будет искать статические файлы в папке с названием static
в нашей корневой папке, а не только в наших приложениях.
Теперь мы хотим, чтобы Django собирал все статические файлы в одном месте. Давайте добавим эту настройку в settings.py
:
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
В папке staticfiles
будут храниться все статические файлы проекта. Наконец, обязательно выполните команду:
$ python manage.py collectstatic
Эта команда заставит Django собрать все статические файлы в папке staticfiles
.