Задать вопрос
@PiggyPig

Почему collectstatic собирает дубли?

Статические файлы находятся по следующему пути:
/myapp/static/myapp/
В конечной папке располагаются папки с сss, js и иконками.

В settings.py правильно указан путь:
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'myapp/static/myapp'),
)


Однако при вызове команды collecstatic образуется папка в корне со следующими папками:
- admin
- myapp
    - css
    - js
    - icons
- css
- js
- icons


Т.е. создались дубли.
Вопрос: как от них избавиться (если это конечно не норма)?
  • Вопрос задан
  • 215 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
syschel
@syschel
freelance/python/django/backend
Если я правильно вас понял, то думаю, что вы не до конца поняли смысл STATICFILES_DIRS и STATIC_ROOT

Разрабатывая приложение локально, вы используете runserver и тут статику отдаёт девелопесркий вебсервер джанги. Когда же вы загрузите на продакшн, там статику отдавать будет уже вебсервер (apache, nginx etc). Пока вы разрабатывает, то runserver берёт статику из пути STATICFILES_DIRS, на продакшене статика будет браться из STATIC_URL.
Выполняя же команду collectstatic, вы говорите джанге "из локальных папок (а их может быть много), всё собрать в одной для продакшена". Вот и получается, что вы увидели "дубли".

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "dev_static"),
)

Если папка из STATICFILES_DIRS находится внутри проекта, то её я обычно добавляю в .gitignore
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы