Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Spring não encontra/reconhece os CSS s em /webapps/resources

Olá, Pessoal.

Desde o curso SpringMVC-I eu não consigo fazer o servidor ler os arquivos CSS. Ele encontra as imagens em webapp/resources/images mas não encontra, ou não reconhece, os arquivos CSS em webapp/resources/css. Eu tinha deixado pra lá porque queria terminar logo o curso e começar o outro, mas isso está começando a me deixar incomodado. Eu baixei os arquivos dos links e descompactei nos lugares corretos, (não importei pelo Eclipse porque ele estava fazendo uma bagunça e criando outro diretório casadocodigo dentro de casadocodigo para os arquivos. então foi tudo pela linha de comando mesmo). E como ele encontra as imagens mas não encontra os CSS acho que deve ser um problema de configuração, porque se estivessem na pasta errada as imagens também estariam e ele não estaria mostrando nenhuma imagem. esta é a estrutura da pasta webapp:

/casadocodigo $ find src/main/webapp/
src/main/webapp/
src/main/webapp/WEB-INF
src/main/webapp/WEB-INF/web.xml
src/main/webapp/WEB-INF/views
src/main/webapp/WEB-INF/views/produtos
src/main/webapp/WEB-INF/views/produtos/form.jsp
src/main/webapp/WEB-INF/views/produtos/ok.jsp
src/main/webapp/WEB-INF/views/produtos/lista.jsp
src/main/webapp/WEB-INF/views/produtos/detalhe.jsp
src/main/webapp/WEB-INF/views/carrinho
src/main/webapp/WEB-INF/views/carrinho/itens.jsp
src/main/webapp/WEB-INF/views/home.jsp
src/main/webapp/WEB-INF/views/head.jsp
src/main/webapp/WEB-INF/message.properties
src/main/webapp/arquivos-sumario
src/main/webapp/resources
src/main/webapp/resources/css
src/main/webapp/resources/css/book-collection.css
src/main/webapp/resources/css/checkout-style.css
src/main/webapp/resources/css/checkout.scss.css
src/main/webapp/resources/css/cssbase-min.css
src/main/webapp/resources/css/fontello-embedded.css
src/main/webapp/resources/css/fontello-ie7.css
src/main/webapp/resources/css/fontello.css
src/main/webapp/resources/css/fonts.css
src/main/webapp/resources/css/guia-do-programador-style.css
src/main/webapp/resources/css/layout-colors.css
src/main/webapp/resources/css/produtos.css
src/main/webapp/resources/css/responsive-style.css
src/main/webapp/resources/css/style.css
src/main/webapp/resources/imagens
src/main/webapp/resources/imagens/cdc-logo.svg
src/main/webapp/resources/imagens/excluir.png

e este é o cabeçalho os CSSs são importados nos arquivos jsp (não modifiquei o template que estava disponível para o curso, apenas extraí o cabeçalho para um outro arquivo e fiz os includes nos outros jsps para facilitar a "debugação"):

<c:url value="/" var="contextPath" />
      <meta charset="utf-8"/>
          <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
          <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
        <link rel="icon"
            href="//cdn.shopify.com/s/files/1/0155/7645/t/177/assets/favicon.ico?11981592617154272979"
            type="image/ico" />
        <link href="https://plus.googlecom/108540024862647200608"
            rel="publisher"/>
        <title>Livros de Java, SOA, Android, iPhone, Ruby on Rails e
            muito mais - Casa do Código</title>
        <link href="${contextPath}resources/css/cssbase-min.css"
            rel="stylesheet" type="text/css" media="all" />
        <link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700'
            rel='stylesheet'/>
        <link href="${contextPath}resources/css/fonts.css"
            rel="stylesheet" type="text/css" media="all" />
        <link href="${contextPath}resources/css/fontello-ie7.css"
            rel="stylesheet" type="text/css" media="all" />
        <link href="${contextPath}resources/css/fontello-embedded.css"
            rel="stylesheet" type="text/css" media="all" />
        <link href="${contextPath}resources/css/fontello.css"
            rel="stylesheet" type="text/css" media="all" />
        <link href="${contextPath}resources/css/style.css"
            rel="stylesheet" type="text/css" media="all" />
        <link href="${contextPath}resources/css/layout-colors.css"
            rel="stylesheet" type="text/css" media="all" />
        <link href="${contextPath}resources/css/responsive-style.css"
            rel="stylesheet" type="text/css" media="all" />
        <link href="${contextPath}resources/css/guia-do-programador-style.css" 
            rel="stylesheet" type="text/css"  media="all"  />
        <link href="${contextPath}resources/css/produtos.css" 
            rel="stylesheet" type="text/css"  media="all"  />
        <link rel="canonical" href="http://www.casadocodigo.com.br/" />    
        <link href="${contextPath}resources/css/book-collection.css"
                rel="stylesheet" type="text/css" media="all" />

Entretanto, quando entro nas páginas que contém esse cabeçalho (home, detalhe e intens) recebo essa mensagem de erro(estou usando o WildFly porque ele parece ser mais generoso com as mensagens, mas o resultado é o mesmo com o Tomcat):

19:04:59,730 WARN  [org.springframework.web.servlet.PageNotFound] (default task-22) No mapping found for HTTP request with URI [/casadocodigo/resources/css/fonts.css] in DispatcherServlet with name 'dispatcher'
19:04:59,731 WARN  [org.springframework.web.servlet.PageNotFound] (default task-25) No mapping found for HTTP request with URI [/casadocodigo/resources/css/cssbase-min.css] in DispatcherServlet with name 'dispatcher'
19:04:59,733 WARN  [org.springframework.web.servlet.PageNotFound] (default task-26) No mapping found for HTTP request with URI [/casadocodigo/resources/css/fontello-embedded.css] in DispatcherServlet with name 'dispatcher'
19:04:59,734 WARN  [org.springframework.web.servlet.PageNotFound] (default task-26) No mapping found for HTTP request with URI [/casadocodigo/resources/css/fontello-ie7.css] in DispatcherServlet with name 'dispatcher'
19:04:59,737 WARN  [org.springframework.web.servlet.PageNotFound] (default task-28) No mapping found for HTTP request with URI [/casadocodigo/resources/css/fontello.css] in DispatcherServlet with name 'dispatcher'
19:04:59,741 WARN  [org.springframework.web.servlet.PageNotFound] (default task-29) No mapping found for HTTP request with URI [/casadocodigo/resources/css/style.css] in DispatcherServlet with name 'dispatcher'
19:04:59,748 WARN  [org.springframework.web.servlet.PageNotFound] (default task-32) No mapping found for HTTP request with URI [/casadocodigo/resources/css/layout-colors.css] in DispatcherServlet with name 'dispatcher'
19:04:59,754 WARN  [org.springframework.web.servlet.PageNotFound] (default task-31) No mapping found for HTTP request with URI [/casadocodigo/resources/css/responsive-style.css] in DispatcherServlet with name 'dispatcher'
19:04:59,759 WARN  [org.springframework.web.servlet.PageNotFound] (default task-33) No mapping found for HTTP request with URI [/casadocodigo/resources/css/guia-do-programador-style.css] in DispatcherServlet with name 'dispatcher'
19:04:59,759 WARN  [org.springframework.web.servlet.PageNotFound] (default task-27) No mapping found for HTTP request with URI [/casadocodigo/resources/css/produtos.css] in DispatcherServlet with name 'dispatcher'
19:04:59,763 WARN  [org.springframework.web.servlet.PageNotFound] (default task-35) No mapping found for HTTP request with URI [/casadocodigo/resources/css/book-collection.css] in DispatcherServlet with name 'dispatcher'

Será que preciso adicionar alguma configuração específica para ele ler os css? Este é o resultado :

Se alguém tiver alguma ideia do que fazer para solucionar ou debugar melhor o problema eu agradeço imensamente. E se você não tem nenhuma ideia, mas leu até aqui, obrigado pelo seu tempo.

4 respostas
solução!

Ok. estou quase lá. Avançando um pouco no tutorial vi que tinha que alterar a AppWebConfig para herdar de WebMvcConfigurerAdapter, e sobreescrever este método:

@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer){
        configurer.enable();
    }

agora as páginas home e carrinho estão ok, mas a detalhe ainda está com problemas para mostrar os preços.

Enfim, dá para adicionar produtos pela url e efetuar as compras. Estou dando uma olhada no forEach para mostrar os preços. Mas isso já é outro assunto, e eu acho que não vou precisar abrir mais um tópico para isso.

inspecionando o console da página detalhe, oq vc tem como saída?

Vinicius, Obrigado pela sua disposiç~ao. mas já resolvi esse problema também. Eu não tinha passado os parãmetros corretos no name= e id= dentro do foreach.

Meu amigo, no seu SecurityConfiguration adicione essa função

@Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/resources/**");
    }