Django collectstatic не собирает медиафайлы из папки сборки response npm
У меня есть приложение для реагирования на интерфейс, после использования npm run build
он создает папку сборки с:
- строить
- favicon.ico
- index.html
service-woker.js
- статический
После использования django python manage.py collectstatic
Я заметил, что django вытаскивает только статическую папку, favicon.ico не вытаскивается. Итак, значок моего веб-сайта не работает.
В моем index.html, <link rel="apple-touch-icon" href="%PUBLIC_URL%/favicon.ico" />
В моем settings.py
STATICFILES_DIRS = [
os.path.join(BASE_DIR, '../frontend/build/static')
]
STATIC_ROOT = '/var/www/web/home/static/'
STATIC_URL = 'home/static/'
В chrome проверьте элемент заголовков:
<link rel="icon" href="./home/favicon.ico">
Как мне заставить его отображать мой веб-значок. Спасибо!
1 ответ
Из документации ясно, что Django collectstatic ищет только файлы в папках, установленных в
STATICFILES_DIRS = [
os.path.join(BASE_DIR, '../frontend/build/static')
]
Это скопирует все файлы из ваших статических папок в каталог STATIC_ROOT.
ваш значок нет ни в одном из перечисленных директорий статических файлов
Во-вторых, статические файлы Django доступны только из полного пути STATIC_URL (вы не можете использовать только.home/ path)
Исправление будет одним из следующих
- просто добавить значок внутри статической папки
- использовать ngnix для обслуживания статических файлов и добавления правильных блоков (предпочтительно)
- измените STATIC_ROOT='/var/www/web/home/' и STATIC_URL = 'home/' (обратите внимание, что таким образом index.html и остальные файлы дома будут доступны как статические файлы)