Когда наступает время для развертывания, лучше всего сжимать статические ресурсы (js, css) и перемещать их в CDN. Есть несколько приложений Django, которые обрабатывают некоторые аспекты (django-compressor
, django-pipeline
каждое приходит на ум), но у каждого из них есть свои проблемы. Например,
django-compressor
хочет генерировать контент внутри цикла запрос / ответ, даже если включено исключительно автономное сжатие.
django-pipeline
нигде не хранит хэши, поэтому он перебирает путь, по которому записывает сжатые файлы, сопоставляет имена файлов с регулярным выражением, сортирует эти возможные совпадения и возвращает последний элемент в списке. Попробуйте сделать это из CDN! Что?!
(на первый взгляд, логичный) конвейерный рабочий процесс, который я ищу, таков:
- Сжатие ресурсов с использованием хэшей содержимого для имени файла
- Хранит эти имена файлов в кеше или модуле или что-то , на которое можно легко сослаться, когда пришло время отображать HTML.
Мне не нужно иметь каждый статический файл на всех моих интерфейсных веб-узлах - только CDN.
Сейчас я чувствую, что мой лучший вариант - взломать поддержку для кэширования хэшей имени файла в django-pipeline
, но я мечтаю о решении для этого.
Каковы мои лучшие варианты в Джанго для этого? Есть ли?
Спасибо!