Olá pessoal,
estou com um problema bem esquisito.
Meu sistema está rodando num servidor com Tomcat7 onde eu o mapeei via Apache para um diretório (via mod_jk, JkMount) de modo que eu não preciso informar a porta no URL:
http://www.dominio.com.br/sistema/pagina.jsf
Está funcionando bem, só que notei um problema com o tema do Primefaces, onde as imagens de diversos controles não aparecem. Abrindo o inspetor de elementos do Chrome, este me informa que o arquivo THEME.CSS está sendo interpretado como imagem:
Resource interpreted as Image but transferred with MIME type text/css: "http://www.dominio.com.br/sistema/javax.faces.resource/theme.css.jsf?ln=primefaces-bluesky".
Os controles estão lá e funcionando, mas sem o style, portanto em branco:
Deveria ser:
.ui-widget-content .ui-icon {
background-image: url("/sistema/javax.faces.resource/images/ui-icons_72a7cf_256x240.png.jsf?ln=primefaces-bluesky");
}
Aparece:
.ui-widget-content .ui-icon {
}
Se abro o mesmo sistema, só que desta vez, informando a porta do Tomcat na URL, as imagens são apresentadas corretamente.
http://www.dominio.com.br:8180/sistema/pagina.jsf
Obs:
- Removendo o tema (bluesky) do WEB.XML funciona e todos os controles ficam com o tema padrão (preto/cinza)
- Não aparece nada no log. Nenhuma stacktrace.
- Instalei um novo servidor em uma máquina usando Ubuntu, Apache2, Tomcat7 e configurei o mod_jk, ou seja, é praticamente o mesmo ambiente. Funciona com e sem a porta!
Em meio aos testes, descobri o seguinte:
Quando tento acessar o tema, via URL:
http://www.dominio.com.br:8180/sistema/javax.faces.resource/theme.css.jsf?ln=primefaces-bluesky
o CSS resultante é:
.ui-widget-content .ui-icon{background-image:url("/sistema/javax.faces.resource/images/ui-icons_72a7cf_256x240.png.jsf?ln=primefaces-bluesky");}
Por outro lado, quando acesso a mesmo URL sem a porta:
http://www.dominio.com.br/sistema/javax.faces.resource/theme.css.jsf?ln=primefaces-bluesky
o resultado é:
.ui-widget-content .ui-icon{background-image:url("#{resource['primefaces-bluesky:images/ui-icons_72a7cf_256x240.png']}");}
Ou seja, sem a porta o primefaces insere “#{resource”…
O mesmo teste no novo servidor local que acabei de instalar, o resultado de ambos é igual (.ui-widget-content .ui-icon{background-image:url("/sistema/javax.faces.resource/…).
Alguém tem alguma sugestão para solução?