У меня есть app.html
страница со многими кофейными скриптами (58 файлов). я использую Джанго-компрессор для их компиляции:Компрессор Django занимает слишком много времени для ответа (15 секунд)
{% compress js %}
<script type="text/coffeescript" src="/static/scripts/commons/commons.coffee"></script>
<script type="text/coffeescript" src="/static/scripts/app/model/Storage.coffee"></script>
<script type="text/coffeescript" src="/static/scripts/app/model/Unit.coffee"></script>
....
{% endcompress %}
Все компилируется и работает, но она занимает 15 секунд для страницы ответа. Я думаю, что это должно быть хорошо для первого запроса (кофе должен быть скомпилирован), но он занимает те же 15 секунд на втором, третьем и всех последующих запросах.
Выход всегда одинаков:
<script type="text/javascript" src="/static/CACHE/js/commons.33f0b9628e28.js"></script>
<script type="text/javascript" src="/static/CACHE/js/Storage.924e88456824.js"></script>
<script type="text/javascript" src="/static/CACHE/js/Unit.0fdebfecb96b.js"></script>
....
Я не меняю файлы, я просто обновление страницы.
Кажется, что django-compressor перекомпилирует все файлы по каждому запросу (но имена скомпилированных js-файлов не изменяются, что является странным).
В любом случае, я могу ускорить django-компрессор?
P.S.
- Я запускаю django локально
manage.py runserver
. DEBUG = True
(мой вариант DEBUG установлен Истина в settings.py)
Если установить 'COMPRESS_ENABLED = true', весь мой кофе объединены в одно файл расслоения плотного (это не то, что я хочу для развития , Я хочу отдельные файлы), обновления страниц теперь бывают быстрыми, но когда я изменяю один из файлов, обновление страницы снова занимает 15 секунд. 'python manage.py compress' неудобен для разработки. Может ли COMPRESS_CACHE_BACKEND изменить ситуацию? Я прочитал документацию, он говорит: «Бэкэнд для использования для кеширования, если вы хотите использовать другой кеш-сервер для Django Compressor». Но что это значит? Что конкретно делает кеш в контексте компрессора django? – imkost
Если вы используете [DummyCache] (https://docs.djangoproject.com/en/dev/topics/cache/#dummy-caching-for-development), он НЕ будет кэшировать вообще, вот что я имею в виду. Да, вы должны установить COMPRESS_ENABLED = False, чтобы он не сжимал ваши скрипты каждый запрос с помощью DummyCache. ", но когда я изменяю один из файлов, обновление страницы снова занимает 15 секунд", то это проблема. Ваши скрипты скомпилированы слишком долго. – byashimov
Итак, компрессор Django не может перекомпилировать только те сценарии, которые были изменены с момента последнего обновления страницы? Он может только скомпилировать их все? – imkost