2013-05-30 1 views
4

Я использую django-compressor для компиляции scss-файлов. Каждый раз, когда я изменяю файл scss, django-compressor создает файл css в /static/CACHE/css/123456.css.django-compressor: отключить кеширование с использованием прекомпиляторов

Это нормально для режима pruduction, но когда я развиваюсь на местном уровне, у меня есть ревизия для каждого изменения, которое я делаю.

Так, в режиме разработки, как я могу заставить вывод к файлу с тем же именем?

Ее не проблема управления пересмотренного варианта ...

COMPRESS_PRECOMPILERS = (
    ('text/x-sass', 'sass --compass "{infile}" "{outfile}"'), 
    ('text/x-scss', 'sass --scss --compass "{infile}" "{outfile}"'), 
) 
+0

он не отвечает на ваш вопрос, но не было бы более логичным добавлять/статические/* или/static/CACHE/* в .gitignore (если вы используете git)? – fsw

+0

Конечно, я это делаю. Я хочу только отключить запись большого количества файлов во время dev на моем компьютере. – grigno

+0

Могу ли я увидеть, как ваш код вызывается для компиляции файлов SCSS? – Ewan

ответ

0

Имя файла для кэшированного файла фактически зависит от его содержимого. Из документов Джанго компрессора:

Создание объединенного файла при необходимости

Файл создается, если это необходимо. Вызываются все прекомпиляторы и все фильтры выполняются, а хэш определяется из содержимого. Это по очереди помогает определить имя файла, которое сохраняется только в том случае, если оно уже не было . Затем возвращается результат HTML (а также сохраняется в кеше). Вот и все!

http://django-compressor.readthedocs.org/en/latest/behind-the-scenes/#third-step-generating-the-combined-file-if-needed

Я не думаю, что есть какой-либо способ, которым Вы можете сделать Джанго компрессора использовать указанное имя без изменения кода.

0

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

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

EDIT:

Право, так что я пропустил правильный вопрос. Единственное решение - отключить компрессор в разработке, в том числе очистить сопоставления MIME прекомпилятора и прибегнуть к условному включению компиляторов на стороне клиента в ваш основной шаблон.

Это позволит ссылаться на исходные, несанкционированные LESS и CoffeeScript источники в разработке, но, к сожалению, я не могу найти компилятор SASS на стороне клиента.

+0

нормально, но моя проблема не исключает выходную информацию из контроля версий, но не записывает много файлов во время dev. – grigno

0

Это может быть достигнуто, но это требует немного настройки. У меня эта точная настройка. Я использую режим локального dev на dev, а в производстве (heroku) - автономное сжатие.

См. Нижнюю часть этой проблемы для кода. https://github.com/django-compressor/django-compressor/issues/226

+0

Предпочтительным является встроенный код snipet, а также размещение ссылки на источник. Таким образом, если источник отключен или перемещается, у нас все равно будет действительный ответ. Благодаря! – JoelC