Wouldn't it be nice if Drupal tread a little lighter on web servers?

Why: When a site has a modern proxy cache (or CDN) and runs on a cluster of servers, it's unnecessary -- and usually a burden -- for Drupal to generate and store aggregated CSS and Javascript to a network file system. This module makes Drupal more "light footed" on the web servers it runs on by delegating the caching of aggregated content to the edge. This module also reduces database activity around tracking aggregated content.

How: This works by replacing Drupal's internal aggregation (and file writing). Instead, this module produces URLs that return necessary aggregated content on-demand -- and then instructs downstream caches to keep them for a very long time. Such caches are easy to scale, and a site has to use them for maximum performance, anyway.

Installation and Configuration: There's no configuration. Just enable the module. As long as Drupal's CSS and Javascript aggregation are enabled, this module will take over that work.

Dependencies: There are no external dependencies, but the Drupal 7 version requires PHP 7.1+ to have access to the SHA-512/224 hashing algorithm. The Drupal 8 version requires PHP 7.0+ to get built-in compression functions to keep URLs short.

Next steps:

  1. Aggregation batch size caps to limit URL lengths
  2. Support for image derivatives (to prevent them from saving to network storage)
  3. HTTP/2 push support (either directly or via interoperation with another module)
  4. Drupal 8 core?
Supporting organizations: 

Project information

Releases