Mvc:resources

1 resposta
andreacerqueira

meu mvc:resources estava funcionando até que coloquei um controller no projeto e sempre que acesso o site e ele vai pra página que setei como inicial, ele não carrega as imagens e o css que são chamados a partir do mvc:resources.
quando eu logo no projeto e saio a página que é a mesma da inicial carrega corretamente.
devo estar fazendo algo errado, estou seguindo um exercicio da apostila 21 da caelum.

meu sprint-content.xml tá assim:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xmlns:context="http://www.springframework.org/schema/context"
	   xmlns:mvc="http://www.springframework.org/schema/mvc"
	   xsi:schemaLocation="http://www.springframework.org/schema/mvc
	   http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
	   http://www.springframework.org/schema/beans
	   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	   http://www.springframework.org/schema/context
	   http://www.springframework.org/schema/context/spring-context-3.0.xsd">
	
	<mvc:resources location="/resources/" mapping="/resources/**" />
	
	<context:component-scan base-package="br.com.caelum.tarefas.controller" />
	<mvc:annotation-driven />	
			
	<mvc:interceptors>
		<bean class="br.com.caelum.tarefas.interceptor.AutorizadorInterceptor" />
	</mvc:interceptors>
	
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/" />
		<property name="suffix" value=".jsp" />
	</bean>	

</beans>
esse é o interceptor:
public class AutorizadorInterceptor extends HandlerInterceptorAdapter {
	
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
			Object controller) throws Exception {
		String uri = request.getRequestURI();
		if(uri.endsWith("loginForm") || uri.endsWith("efetuaLogin")) {
			return true;
		}
		
		if(request.getSession().getAttribute("usuarioLogado") != null) {
			return true;
		}
		
		response.sendRedirect("loginForm");
		return false;
	
	}
}

quando vejo o codigo fonte da página, ele aparece assim:

dai se eu clico no href ele abre a url assim:
http://localhost:8080/tarefas/resources/css/loginForm

alguém sabe o que estou fazendo de errado?

obrigado.

1 Resposta

erik.brunno

Se o diretorio resource está dentro de web-inf, intao o location deverá estar como location="/WEB-INF/resources"

<mvc:resources location="/resources/" mapping="/resources/**" />

Criado 12 de maio de 2012
Ultima resposta 16 de set. de 2013
Respostas 1
Participantes 2