Django collectstati c не собирает медиафайлы из папки сборки response npm - PullRequest
0 голосов
/ 19 июня 2020

У меня есть приложение для реагирования на интерфейс, после использования npm run build оно создает папку сборки с:

  • build
    • favicon.ico
    • index. html
    • service-woker.js
    • stati c

После использования django s python manage.py collectstatic Заметил что django сделал так, что вытаскивает только папку stati c, favicon.ico не вытаскивается. Итак, значок моего веб-сайта не работает.

В моем индексе. 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 Ответ

1 голос
/ 19 июня 2020

В документации ясно, что Django collectstati c ищет только файлы в папках, которые установлены в

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, '../frontend/build/static')
]

Это скопирует все файлы из ваших c папок stati в каталог STATIC_ROOT.

ваш значок нет ни в одном из перечисленных директорий статических файлов


Во-вторых, файлы Django stati c доступны только из Путь STATIC_URL (вы не можете использовать только .home / path)

Исправить можно было бы одним из следующих

  • , чтобы просто добавить значок внутри stati c папку
  • использовать ngnix для обслуживания файлов c stati и добавления соответствующих блоков (предпочтительно)
  • изменить STATIC_ROOT = '/ var / www/web/home/' и STATIC_URL = 'home /' (обратите внимание на этот индекс index . html и остальные файлы дома будут доступны как статические файлы)
...