In AEM 6.4, is there a way to call clientlibs by component instead of loading all CSS and JS on every page?
Views
Replies
Total Likes
You can call a clientlib from a specific component.
So using ui:includeClientLib then? Ok, I'll need to find a way to rewrite the src's and href's because that approach exposes the internal structure of the application.
smacdonald2008 I'm curious, what method would you use to call a clientlib from a specific component?
The way to do this is to have a category per component
Hi,
You can add clientlibs folder under each component and add category name to clientlibs folder like below
categories="[componentspecificname]"
Add the clientlibs inside component jsp/html
JSP:
<cq:includeClientLib categories="categoryname" /> -- This includes both js/css files
<cq:includeClientLib js="categoryname"/> -- To include only js
<cq:includeClientLib css="categoryname"/> -- To include only css
Sightly:
This will include multiple js/css files on the page as each component will include a js/css files. Also, if clientlibs are added in /apps user everyone should have read access of /apps for files to load in publisher or clientlibs needs to create under /etc/designs
I thought ‘cq’ was deprecated since AEM 5.3. Shouldn’t we be using ui now?
Also, this solution injects clientlibs in the body of the page, which defeats the purpose of a component-based architecture (increasing the performance of an app) by forcing the client to re-render the page. And adding <link .. /> to the body is invalid, 'link' tags should only be added in the head of a document.
Views
Likes
Replies
Views
Likes
Replies