innoweb / silverstripe-prefix-requirements
Adds a file hash prefix to all requirements. Replaces the default ?{mtime} suffix to make the requirements fully cacheable.
Installs: 1 535
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 5
Forks: 1
Open Issues: 0
Type:silverstripe-vendormodule
Requires
- silverstripe/framework: ^5
- webmozart/glob: ^4.6.0
Replaces
README
Overview
Adds a file hash prefix to all requirements. Replaces the default ?{mtime} suffix to make the requirements fully cacheable.
Whenever a CSS or Javascript file is changed, a new prefixed version of the file is generated. This makes the files fully cacheable because whenever a change is made a file with a new URL is included in the HTML.
It is recommended to minify CSS files using Grunt or Gulp (or any other technique you might want to use).
Requirements
- SilverStripe CMS 5.x
Note: this version is compatible with SilverStripe 5. For SilverStripe 4, please see the 2.x release line. For SilverStripe 3, please see the 1.x release line.
Installation
- composer require innoweb/silverstripe-prefix-requirements
- run dev/build
Usage
The prefixed files are generated and stored in the default CombinedFilesFolder
of the Requirements_Backend
class.
You can use the following entry in your config.yml
to specify where the generated files are stored:
SilverStripe\View\Requirements_Backend: default_combined_files_folder: '_your_folder'
Default is ASSETS_DIR . '/_combinedfiles'
.
This module doesn't handle css and js in the CMS.
Because the files are moved to the configured CombinedFilesFolder
, please make sure you only use paths
relative to the website root for includes in your css and js files.
E.g. /_resources/themes/yourtheme/images/icon.png
, not ../images/icon.png
.
You can exclude certain requirements from being re-written using config:
Innoweb\PrefixRequirements\Control\PrefixResourceURLGenerator: excluded_resources: - 'vendor/lekoala/silverstripe-debugbar/**/*' - 'vendor/jonom/silverstripe-betternavigator/**/*'
You can also change the format that is used for the hash and switch it to postfix instead of prefix:
Innoweb\PrefixRequirements\Control\PrefixResourceURLGenerator: nonce_style: [mtime|sha1|md5] use_postfix: true
License
BSD 3-Clause License, see License