Django: автоматическое уменьшение css/js файлы перед выпуском

У меня есть следующий случай: Я хочу использовать несжатые js/css файлы во время разработки (для отладки js, например), но на производстве я хочу переключить автоматически на уменьшенные версии этого файлы.

некоторое простое решение состоит в том, чтобы вставить Ваш шаблон:

<script src="some_js.{% if not debug %}min.{% endif %}js"....

но это требует manully, если тот такой файл существует и сделать мини-фракцию manullay после исходного изменения файла.

Как Вы выполняете это в своих проектах? Есть ли какой-либо инструмент для этого?

25
задан dzida 17 June 2010 в 14:15
поделиться

3 ответа

Вы пробовали 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

18
ответ дан 28 November 2019 в 20:57
поделиться

Я использую webassets и пока что очень доволен. Что мне действительно нравится в нем, так это то, что вы все еще можете определять свои CSS и JS файлы внутри ваших шаблонов, а не в конфигурации проекта.

Документацию можно найти по адресу: http://elsdoerfer.name/docs/webassets/

8
ответ дан 28 November 2019 в 20:57
поделиться

Я написал этот 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.
0
ответ дан 28 November 2019 в 20:57
поделиться
Другие вопросы по тегам:

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