У меня есть следующий случай: Я хочу использовать несжатые js/css файлы во время разработки (для отладки js, например), но на производстве я хочу переключить автоматически на уменьшенные версии этого файлы.
некоторое простое решение состоит в том, чтобы вставить Ваш шаблон:
<script src="some_js.{% if not debug %}min.{% endif %}js"....
но это требует manully, если тот такой файл существует и сделать мини-фракцию manullay после исходного изменения файла.
Как Вы выполняете это в своих проектах? Есть ли какой-либо инструмент для этого?
Вы пробовали http://code.google.com/p/django-compress/ ?
Смотрите http://djangopackages.com/grids/g/asset-managers/ для достаточно полного списка доступных менеджеров активов для Django....
Если вы уже используете django-compress, вам стоит обратить внимание на обновление до django-pipeline, который является хорошо поддерживаемым форком, с большим количеством новых возможностей. Я призываю всех, кто использует django-compress, перейти на django-pipeline: * django-pipeline documentation
Я использую webassets и пока что очень доволен. Что мне действительно нравится в нем, так это то, что вы все еще можете определять свои CSS и JS файлы внутри ваших шаблонов, а не в конфигурации проекта.
Документацию можно найти по адресу: http://elsdoerfer.name/docs/webassets/
Я написал этот Makefile , чтобы минимизировать и объединить мои файлы JS и CSS. Это зависит от JAR-файла YUI Compressor JAR.
Однако после обновления файла вам все равно придется запустить make
. Тем не менее, вы можете запустить его при запуске и / или перезагрузке сервера или настроить фиксацию на вашем SCM.
Конечно, вам все еще понадобится {% if not debug%}
, но это небольшая цена, которую нужно заплатить, IMO.
Показано простое использование:
$ make
[css] static/css/first.css
[css] static/css/second.css
[css] static/css/third.css
[css] static/css/and_so_on.css
[tag] @import url("static/css/all.css");
[js] static/js/first.js
[js] static/js/second.js
[js] static/js/third.js
[js] static/js/and_so_on.js
[tag] <script type="text/javascript" src="static/js/all.js"></script>
Done.