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.
You can add clientlibs folder under each component and add category name to clientlibs folder like below
Add the clientlibs inside component jsp/html
<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
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
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.