Какая правильная структура static файлов в больших проектах?

Доброго времени суток.

Всегда интересовал вопрос хорошей структуры статичных файлов - js, css, img.

В данный момент я использую примерно такую структуру

├── /static
│   ├── /dist
│   │   ├──  /js
│   │   │   ├──  /apps          -> это js скрипты разбросанные по модулям (app)
│   │   │   │   ├──  /auth                    -> название модуля (app)
│   │   │   │   │   ├── login.js        -> название вьюхи
│   │   │   ├── somescript.js
│   │   │   ├── src.js
│   │   │   ├──  /lib                       -> библиотеки и скрипты  
│   │   │   │   ├──  /bootstrap-3.1.1    -> я использую версию в названии (стоит ли?)
│   │   │   │   │   ├──  /js
│   │   │   │   │   │   ├──  bootstrap.js
│   │   │   │   │   ├──  /css 
│   │   │   │   │   │   ├──  bootstrap.css
│   │   │   │   │   ├──  /plugins   -> плагины и дополнения для библиотеки или скрипт
│   │   │   │   │   │   ├──  /tablesorter
│   │   │   │   │   │   │   ├──  /js
│   │   │   │   │   │   │   │   ├──  tablesorter.js
│   │   │   │   │   │   │   ├──  /css
│   │   │   │   │   │   │   │   ├──  tablesorter.css
│   │   ├──  /css
│   │   │   ├──  somecss.css


Так вот, мне такая структура не очень нравится, потому что не комильфо и в большом проекте трудно уследить за тем, что подключается, а что нет.

Хотелось бы заюзать что то по типу require.js , но для него надо переделывать структуру.

И вот сам вопрос, подскажите, пожалуйста, хорошую структуру для статических файлов, например, ту, которую используете вы сами, или какие-нибудь ссылки на статьи.

Пишу на django.

Заранее спасибо.
  • Вопрос задан
  • 3295 просмотров
Пригласить эксперта
Ответы на вопрос 2
optio
@optio
1. Все внешние библиотеки подключаются только через bower
2. Своя статика в каталогах project/static/(css|less|js). Структура подкаталогов зависит от фреймворка и договорённостей между разработчиками.
3. Всё собирается/сжимается через django-pipeline в момент сборки и загружается в CDN при деплое.

В итоге внешний мир видит только static.example.com/frontend.HASH.css и static.example.com/frontend.HASH.js. Файлы доставляются в сжатов ввиде и навечно кешируются.

Профит!
Ответ написан
Комментировать
Lisonok
@Lisonok
Почитайте про БЭМ ru.bem.info/method/filesystem
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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