2013-03-06 4 views
1

Некоторые вещи о Django Compressor мне не понятны.

1) Должен ли я использовать его только в среде разработки? Если нет, значит ли это, что он будет сжимать и собирать статические файлы js/css по каждому запросу даже в производственной среде?

2) Можно ли изменить внутренний CSS-код на изображения? Я имею в виду, например: Компрессор и развертывание Django

body{ 
    background: #2b2925 url('http://localhost:8000/static/img/MyBG.png'); 
} 

Это, конечно, не будет работать на прод среде. Должен ли я использовать compressor для изменения этого URL-адреса на производственном сервере или использовать другой подход? Например. Разбор и замена скрипта Fabric во время развертывания?

ответ

1

Нет причин для того, чтобы показывать файлы локально, которые будут обслуживаться приложением staticfiles по абсолютному URL. Вы можете просто использовать относительный путь к файлу. Это решит вашу проблему необходимости переписывать пути для локального и производственного процессов.

Так, например, использование:

body { 
    background: #2b2925 url('../img/MyBG.png'); 
} 

Относительный путь может отличаться с учетом структуры каталогов.

Компрессор будет только сжимать файлы, чьи mtimes отличаются друг от друга, а это означает, что если файлы не были изменены, он не будет повторно сжимать файлы по каждому запросу.

+0

Учтите, что я всегда буду редактировать свои файлы локально (никогда удаленно), а затем я вытащу их на удаленный сервер. Если я редактирую и сжимаю файлы локально, это означает, что я буду развертывать их в уже сжатом состоянии. Итак, нужно ли мне (и почему) приложение компрессора работать и в производстве? – Leonardo

+0

Если вы собираетесь предварительно сжать их, то нет, вам не нужно запускать его в производство. Я делаю то же самое с меньшими файлами. Я предварительно компилирую их локально, а затем развертываю только миниатюрный CSS, который, в свою очередь, сжимается компрессором. – Brandon