ERVER
Setembro 20, 2012, 12:29pm
#1
Boa tarde pessoal,
Minha app não tá achando as imagens, css e javascript dentro dela.
Criei o diretório resources dentro de WebContent, e mapeei ela no meu spring-context.xml assim:
<mvc:resources mapping="/resources/**" location="/resources/" />
Então minha estrutura de diretórios ficou assim:
Acontece que quando referencio o arquivo css dentro da pasta css, assim:
<link rel="stylesheet" type="text/css" href="resources/css/screen.css" />
a página não carrega a folha de estilos, javascript nem imagens.
Tô fazendo algo de errado?
Grande abraço a todos, e muito obrigado desde já.
ERVER
Setembro 20, 2012, 12:42pm
#2
OBS: a index.jsp que ta chamando o css e o js como ai acima tá na pasta views dentro da WEB-INF (este mapeamento tá certinho spring-context.xml).
Abraços.
Utilize a tag:
<c:url/>
Substitua:
<link rel="stylesheet" type="text/css" href="resources/css/screen.css" />
Por:
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/screen.css" />" />
Exemplo para JS:
<script type="text/javascript" src="<c:url value="/resources/scripts/jquery.js" />"></script>
Para imagens use da mesma forma.
ERVER
Setembro 20, 2012, 1:28pm
#4
Olá alvarojunior,
Primeiramente, muito obrigado pela ajuda e atenção, funcionou perfeitamente!
Só uma pergunta: só tem essa forma de apontar pra imagens, css, etc? Sou iniciante em web ainda.
Abraços.
Existem outras formas de fazer esse apontamento, mas em todas você precisa informar o contexto da aplicação (se existir).
Exemplo:
Você fez o deploy da sua WebApp com o seguinte contexto mywebapp.
E acessa pela url: http://localhost:8080/mywebapp
No caminho do arquivo você poderia referenciar-se diretamente ao contexto (não sendo recomendado):
Exemplo:
<link rel="stylesheet" type="text/css" href="/mywebapp/resources/css/screen.css" />
Mas isso não é recomendado, pois se resolvesse mudar o nome do contexto seria necessário substituir todos os caminhos.
Resumidamente o que o c:url faz é colocar dinamicamente o contexto.
Para o mesmo efeito você poderia utilizar:
${pageContext.request.contextPath}
Exemplo:
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/resources/css/screen.css" />
ERVER
Setembro 20, 2012, 2:05pm
#6
Muito obrigado alvarojunior!
Abraço.