Download cdn-8.x-3.0.tar.gztar.gz 33.6 KB
MD5: 84aab353d847bd22e75440ae52896762
SHA-1: c28235fa04ad9aaf0676af218bcd7e47c035e16a
SHA-256: ab12b29c9cc344fb619497a87f885eb74cac93de53db8b44f7ce807ce4b42746
Download cdn-8.x-3.0.zipzip 51.03 KB
MD5: 5be604b0ec423a7bcd53d9751ad93df6
SHA-1: 10540c2c5ba49cf221759d312d8a593eb419751d
SHA-256: 6d05be1f5e4c735f98d32f7a5a773f077309da033ae098b322c727d27ff5b3eb
Install with Composer: $ composer require 'drupal/cdn:^3.0'
Using Composer to manage Drupal site dependencies

Release info

Created by: Wim Leers
Created on: 2 Dec 2016 at 12:01 UTC
Last updated: 9 Jul 2017 at 14:24 UTC
Core compatibility: 8.x

Release notes

After 10 weeks of RCs, here's the first stable release!

The CDN module is fully ported to Drupal 8. It is much simpler to use (just look at the UI). It has less overhead (the UI is in a separate module, the altering of file URLs has far simpler logic). It has lower technical complexity (File Conveyor support was dropped, it no longer needs to detect HTTP vs HTTPS: it always uses protocol-relative URLs, less unnecessary configurability, the farfuture functionality no longer tries to generate file and no longer has extremely detailed configurability).

In other words: the CDN module in Drupal 8 is much simpler. And has much better test coverage too. (You can see this in the tarball size too: it's about half of the Drupal 7 version of the module, despite significantly more test coverage!)

The CDN UI module's configuration UI.

all the fundamentals
  • the ability to use simple CDN mappings, including conditional ones depending on file extensions, auto-balancing, and complex combinations of all of the above
  • DNS prefetching
  • a simple UI to set it up — in fact, much simpler than before!
  1. the CDN module now always uses protocol-relative URLs, which means there's no more need to distinguish between HTTP and HTTPS, which simplifies a lot
  2. the UI is now a separate module (fixes #1784432: Version 3.0: move UI of CDN module into a cdn_ui module)
  3. the UI is optional: for power users there is a sensible configuration structure with strict config schema validation
  4. complete unit test coverage of the heart of the CDN module, thanks to D8's improved architecture
  5. DNS prefetching using headers rather than tags in <head>, which allows me to use a much simpler/cleaner Symfony response subscriber
  6. tours instead of advanced help (fixes #1753174: Dependency for advanced_help module), which very often was ignored
  7. there is nothing to configure for the SEO (duplicate content prevention) feature anymore
  8. nor is there anything to configure for the Forever cacheable files feature anymore (named Far Future expiration in Drupal 7), and it's a lot more robust
  1. File Conveyor support
  2. separate HTTPS mapping (also mentioned above)
  3. all the exceptions (blacklist, whitelist, based on Drupal path, file path…) — all of them are a maintenance/debugging/cacheability nightmare
  4. configurability of SEO feature
  5. configurability of unique file identifiers for the Forever cacheable files feature
  6. testing mode

Changes since 8.x-3.0-rc2:

(Better commit/issue list to follow once #2828769: Impossible to install Git Release Notes for Drush (grn) via composer is fixed.)

* 5bdb2d2 - (tag: 8.x-3.0, origin/8.x-3.x, 8.x-3.x) Issue #2828555 by mcdruid, Wim Leers, ashleyhazle: Add 'Drupal-CDN-redirect' HTTP header to simplify identifying SEO redirects during debugging (3 minutes ago) <mcdruid>
* 231043f - Issue #2830546 by Wim Leers: Fix all phpcs violations (7 days ago) <wimleers>


The selected release is the release that will be used for automated testing. Optional projects are only used for testing.


No required projects


No optional projects