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.xhtml
s 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.