5
respostas

Css and images not found in view

Olá não estou conseguindo visualizar a página detalhe da Casa do Código formatada pelo css e nem a imagens, fiz uma inserção de dois métodos na classe AppWebConfiguration que segue:

    @Autowired
    private RequestMappingHandlerAdapter requestMappingHandlerAdapter;

    @PostConstruct
    public void init(){
        requestMappingHandlerAdapter.setIgnoreDefaultModelOnRedirect(false);
    }

    public void addResourceHandlers(ResourceHandlerRegistry registry){

        registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/css/");
        registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/imagens/");
    }

e ainda assim os arquivos não são exibidos. O diretório está inserido em WEB-INF/resources/.

????

5 respostas

Opa, olhando por cima, seu código não parece errado... Para tentar adiantar o lado, tenta fazer assim:

  • apaga esse método que vc adicionou.
  • adiciona esse aqui: @Override public void configureDefaultServletHandling( DefaultServletHandlerConfigurer configurer) { configurer.enable(); }
  • e move seus css, js e imagens para as pastas originais do curso.

Caso você queira realmente fazer do jeito que vc implementou. Acho importante checar a aba network do devtools do navegador, para verificar o que ta acontecendo no download dos recuross.

Olá, se puder dar uma olhada no projeto inteiro ficarei grato. Mesmo com a alteração do método não encontrei o erro.

https://github.com/klermann/curso-alura-spring1.git

Estou na mesma!

Com a pasta resources na posição original "/src/main/webapp/resources", criei uma classe que extende "WebMvcConfigurerAdapter", no pacote "br.com.casadocodigo.loja.conf" e chamei de ResourcesConfig, segue código:

package br.com.casadocodigo.loja.conf;

import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

public class ResourcesConfig extends WebMvcConfigurerAdapter {

        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/resources/**")
                    .addResourceLocations("/resources/");
        }
    }

Depois informei ao Spring adicionando esta classe no retorno do método "getServletConfigClasses" da classe "ServletSpringMVC" como abaixo:

   @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[] {AppWebConfiguration.class, JPAConfiguration.class, ResourcesConfig.class};
    }

Dessa maneira funcionou perfeitamente.

Estava com o mesmo problema mas a dica do Rodrigo solucionou de forma perfeita.

Obrigado Rodrigo.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software