Change /javax.faces.resource prefix of resource URLs
jsf-2
Solution
That's not directly possible without reimplementing the entire `ResourceHandler` with help of a `ResourceHandlerWrapper` as answered by lu4242 on this question, which is not exactly a trivial job. It's a hardcoded `public static final` field constant in `ResourceHandler` class, the `ResourceHandler#RESOURCE_IDENTIFIER`. You may want to post a feature request to make this externally configureable like as has happened for the `NamingContainer` separator character during the JSF 1.2 to JSF 2.0 step.
But why would you do this? There are a lot of other things which gives enough hints about the framework used. In case of JSF that can be the request URL pattern (`/faces/*`, `*.jsf` or `*.xhtml`), the response headers (`X-Powered-By`), specific hidden form fields (`javax.faces.ViewState`), the autogenerated client IDs (by default woodstocked), the JS libraries used (`jsf.js`), etcetera.
Problem
When I use ``` <h:outputStylesheet library="css" name="styles.css"> ``` or ``` <h:graphicImage library="images" name="image.jpg"> ``` then in html I get something like this ``` <link type="text/css" rel="stylesheet" href="/appName/javax.faces.resource/styles.css.xhtml?ln=css" /> ``` so the user can see which framework was used to write this app. How can I avoid showing `javax.faces.resource/styles.css.xhtml?ln=css` to the user, but also still using facelets(not html, like `<link rel=...`>)? It will be good when the user simply will see the path to the css file as `resources/css/styles.css`