Некоторое время назад я написал обработчик ASP.NET, который объединяет, сжимает / минимизирует, gzips и кэширует необработанные файлы исходного кода CSS и Javascript по требованию. Например, для ввода трех CSS-файлов в разметке это будет выглядеть следующим образом ...
<link rel="stylesheet" type="text/css"
href="/getcss.axd?files=main;theme2;contact" />
Обработчик getcss.axd считывает строку запроса и определяет, какие файлы ему нужно прочитать и минимизировать (в этом случае он будет искать файлы с именами main.css, theme2.css и contact.css). Когда он завершает чтение в файле и сжимает его, он сохраняет большую уменьшенную строку в кэше на стороне сервера (ОЗУ) в течение нескольких часов. Он всегда сначала просматривается в кеше, поэтому при последующих запросах его не нужно повторно сжимать.
Мне нравится это решение, потому что ...
- максимально уменьшает количество запросов
- Для развертывания не требуется никаких дополнительных шагов
- Это очень легко поддерживать
Единственным недостатком является то, что весь код стиля / скрипта будет в конечном итоге храниться в памяти сервера. Но оперативная память сегодня настолько дешева, что она не так важна, как раньше.
Также, стоит упомянуть одну вещь: убедитесь, что строка запроса не допускает каких-либо вредоносных манипуляций с путями (допускаются только A-Z и 0-9).