@artinnok
бекенд-программист

Какая должна быть структура статических файлов внутри проекта Django?

На данный момент, структура такая:
static/
├── build
│   ├── css
│   │   └── main.css
│   ├── fonts
│   ├── images
│   └── js
│       └── main.js
└── src
    ├── blocks
    │   ├── footer
    │   └── header
    │       ├── header.js
    │       └── header.scss
    ├── fonts
    └── images


Работаем в src, собираем в build. Используем БЭМ.

Структура нормальная, но вот с зависимостями bower - проблемы. С js и css все понятно, все хорошо.

Проблема со шрифтами и с изображениями - куда их надо копировать? Ясно, что копируем в src из bower_components. Шрифты и изображения копировать в src/fonts и src/images - так себе решение, могут быть конфликты с именами (одинаковые названия изображений у разных зависимостей bower).

На мой взгляд, тут два решения:
src
    ├── blocks
    │   ├── footer
    │   └── header
    │       ├── header.js
    │       └── header.scss
    ├── dependency1
    ├── dependency2
    ├── fonts
    └── images

При такой структуре, копируем шрифты и изображения из папки bower_components в соответствующую директорию внутри src. При этом, возникает еще два вопроса: надо ли сохранять структуру папок внутри зависимости (к примеру, dependency1/dest/assets/img/hello.png) или сделать ее плоской (dependency1/img/hello.png)?

Альтернативная структура:
src
    ├── blocks
    │   ├── footer
    │   └── header
    │       ├── header.js
    │       └── header.scss
    ├── fonts
    │   ├── dependency1
    │   └── dependency2
    └── images
        ├── dependency1
        └── dependency2


Думаю, в этом случае, все понятно. Вопросы возникают такие же, как при структуре выше.

Как быть?

P.S. Буду очень рад вашим структурам или гайдам с best practices.
  • Вопрос задан
  • 328 просмотров
Пригласить эксперта
Ответы на вопрос 1
sim3x
@sim3x
Несобранная статика (+ jade ) - где угодно, лучше даже за пределами репозитория с джанго проектом
Собранная - в
└── myapp
    ├── manage.py
    ├── myapp
    │   ├── __init__.py
    │   ├── settings.py
    │   ├── urls.py
    │   ├── wsgi.py
    ├── requirements.txt
    ├── templates
    │   ├── css
    │   │   └── css.css
    │   ├── images
    │   │   └── image.png
    │   ├── index.html
    │   ├── js
    │   │   └── js.js
    │   ├── fonts
    │   │   └── font.svg


вместо бовера лучше использовать npm - меньше телодвижений и все в одном файле вместе со сборщиками, пакетами для тестов и тп
Ответ написан
Ваш ответ на вопрос

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

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