diff --git a/docs/en/02_Developer_Guides/01_Templates/03_Requirements.md b/docs/en/02_Developer_Guides/01_Templates/03_Requirements.md index fdb6085bd..78ca13e64 100644 --- a/docs/en/02_Developer_Guides/01_Templates/03_Requirements.md +++ b/docs/en/02_Developer_Guides/01_Templates/03_Requirements.md @@ -130,6 +130,9 @@ the third paramter of the `combine_files` function: Requirements::combine_files('print.css', $printStylesheets, 'print'); +By default, all requirements files are flushed (deleted) when ?flush querystring parameter is set. +This can be disabled by setting the `Requirements.disable_flush_combined` config to `true`. + ## Clearing assets :::php diff --git a/view/Requirements.php b/view/Requirements.php index 76cad5ffd..0c5a316b3 100644 --- a/view/Requirements.php +++ b/view/Requirements.php @@ -8,11 +8,25 @@ */ class Requirements implements Flushable { + /** + * Flag whether combined files should be deleted on flush. + * + * By default all combined files are deleted on flush. If combined files are stored in source control, + * and thus updated manually, you might want to turn this on to disable this behaviour. + * + * @config + * @var bool + */ + private static $disable_flush_combined = false; + /** * Triggered early in the request when a flush is requested */ public static function flush() { - self::delete_all_combined_files(); + $disabled = Config::inst()->get(__CLASS__, 'disable_flush_combined'); + if(!$disabled) { + self::delete_all_combined_files(); + } } /**