lterar o prefixo JSF para o mapeamento de sufixos obriga-me a reaplicar o mapeamento em imagens de fundo CSS

Eu uso o mapeamento de prefixos há anos e decidi mudar para o mapeamento de sufixos, apenas para me livrar do/faces na url realmente. Eu só queria verificar se estou indo na direção certa antes de me cavar um buraco, pois há algumas coisas inesperadas acontecendo. Eu mudei disso:

<servlet-mapping>
    <servlet-name>FacesServlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
</servlet-mapping>

para isso

<servlet-mapping>
    <servlet-name>FacesServlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

E então eu vejo que tudo está passandoFacesServlet has.xhtml anexado a ele, para que o navegador solicitebackground.png.xhtml arquivos,style.css.xhtml file - isso está certo? É chamado de mapeamento de sufixos, suponho, mas parece um pouco desarrumado para mim e estou tentando me convencer de que é o caminho a seguir.

Nos meus arquivos CSS em que um URI é referenciado, também tenho que acrescentar.xhtml:

background-image: url(images/background.png.xhtml);

Então, vi um post do BalusC que fornece uma solução para impedir o download de recursos sem passar pelo FacesServlet:

<security-constraint>
    <display-name>Restrict raw XHTML docs</display-name>
    <web-resource-collection>
        <web-resource-name>XHTML</web-resource-name>
        <url-pattern>*.xhtml</url-pattern>
    </web-resource-collection>
    <auth-constraint/>
</security-constraint>

Quando adiciono isso, apenas os reais.xhtmls arquivos @ são carregados na página, todos os outros recursos (apesar de terem.xhtml anexado) não são exibido

Tudo o que eu quero saber é:

Isso anexa.xhtml para tudo normal (desculpe se a pergunta mais ridícula do ano)

Por que a restrição de segurança 'restringir documentos xhtml brutos' impede o carregamento de recursos como CSS, JavaScript e imagens?

Obrigado por qualquer feedback. Estou usando o Mojarra 2.1.2 no Glassfish 3.1.

questionAnswers(1)

yourAnswerToTheQuestion