AEM Clientlib Versioning

AEM Clientlib Versioning


Clientlib versioning allows CSS and javascript which is served by aem clientlibs to be cached for a very long time which in turn reduces the page load time of the website and improves performance. It has various benefits like -

  • Longer TTL for cached client libraries.
  • Improved web and site performance by reducing page load time.
  • No more inconsistent data from the normal client library.

How it works -

  • It uses Sling Rewriter to rewrite the client libraries and append a unique MD5 value at the end of the client library URL.
  • This url get cache later.
  • This MD5 value is unique for the code of ClientLibs. 
  • If there is a modification in code or ClientLibs, a new MD5 value will be generated and appended to the client library URL this allows it to recache.

Steps to create Clientlib version:

  1. Login to http://localhost:4502/crx/de/index.jsp
  2. Go to /apps/<your-project>/config 
  3. Create a nt:unstructured folder by name it as a rewriter
  4. Go to /libs/cq/config/rewriter/default
  5. Copy the default node and paste it under your project config folder
It will look like this -

versioned-clientlibs

Configure Apache to send the right headers so that it can be cached. Example

Apache server configuration

Versioned ClientLibs URL will look like this:

https://localhost:4502/etc.clientlibs/we-practice/clientlibs/sales.min. 8d1738c51ad22dacbbbec37f85734bac.js

Note -

For loading versioned ClientLibs for the first time you need to restart AEM instance.

Validation -

· Navigate to http://localhost:4502/system/console/status-slingrewriter

· Search for resource path where versioned clientlibs is created /apps/<project-name>/config/rewriter/versioned-clientlib. If a resource path is found under the sling rewriter. That means the configuration is working fine.

Comments

Popular

AEM 6.3 - Check if page is published or not

Sample CQ Filter

Search engine optimization in CQ