Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
24
respostas

Não carrega CSS

Estou com o mesmo problema do amigo acima, css não carrega importei o arquivo zip como foi ensinado no exercicio, o caminho cheguei a colocar manual sem o contexPath, mesmo assim nao carrega da o erro 404.

24 respostas

Depois de algum tempinho achei a seguinte solução: Olha como ficou meu AppWebConfigurantion:

@EnableWebMvc
@ComponentScan(basePackageClasses = { HomeController.class, ProdutoDAO.class,
        FileSaver.class })
public class AppWebConfiguration extends WebMvcConfigurerAdapter {

    @Bean
    public InternalResourceViewResolver internalResourceViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");

        return resolver;
    }

    @Bean
    public MessageSource messageSource() {
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
        messageSource.setBasename("/WEB-INF/messages");
        messageSource.setDefaultEncoding("UTF-8");
        messageSource.setCacheSeconds(1);

        return messageSource;
    }

    @Bean
    public FormattingConversionService mvcConversionService() {
        DefaultFormattingConversionService conversionService = new DefaultFormattingConversionService();
        DateFormatterRegistrar registrar = new DateFormatterRegistrar();
        registrar.setFormatter(new DateFormatter("dd/MM/yyyy"));
        registrar.registerFormatters(conversionService);

        return conversionService;
    }

    @Bean
    public MultipartResolver multipartResolver() {
        return new StandardServletMultipartResolver();
    }

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

Solução foi extender o WebMvcConfigurerAdapter, e dar um @Override no addResourceHandlers registrando o caminho que fica a pasta resources

Fábio tentei não deu certo, movi pra outras pastas o css e mostrei o caminho delas e nada, faço a inspecao pelo google do css que é carregado na pagina, apenas 1 é carregado o de endereco é web, o restante tudo Status 404.

 <link href="/casadocodigo/src/main/webapp/resources/css/book-collection.css" 
            rel="stylesheet" type="text/css"  media="all"  />


``

eu to acessando os arquivos do mesmo modo que já veio no detalhe.jsp do zip, você modificou?

<c:url value="/" var="contextPath" />
<link href="${contextPath}resources/css/cssbase-min.css"
            rel="stylesheet" type="text/css" media="all" />

a minha pasta resources tá dentro do webapp junto com as pastas arquivos-sumarios e WEB-INF como aparentemente o seu está se tiver tudo certo, qualquer coisa da um refresh no projeto, um clean no server e um ctrl+f5 no navegador as vezes é isso

Não modifiquei, só adicionei outras referencias colocando todo endereço do local do arquivo e mesmo assim continua a nao achar,

Os arquivos CSS referenciado aparece,mas vazio do conteúdo original, e exibe essa msg

<html><head><title>Apache Tomcat/7.0.69 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 404 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The requested resource is not available.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/7.0.69</h3></body></html>


`

estranho, aqui está desse modo http://imgur.com/Y111zL4

E o detalhe.jsp ta abrindo normal mas só sem o css?

o que parece que a pasta esta bloqueado para leitura mas nao sei o que é.

Image and video hosting by TinyPic

isso abre normal, sem o css

Image and video hosting by TinyPic

e modificou o AppWebConfiguration do jeito que eu coloquei? pq realmente o resto tá igual aqui :/

achei outro modo, apaga aquele método addResourceHandlers que eu passei e implementa outro método:

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

nada, alterei o caminho do css pra todos possiveis e nada, continua nao achando o caminho.

Boa noite!

Estou com o mesmo problema do Rodrigo, realizei todos os testes e implementações e nada.

Alguém pode me ajudar?

Bom dia!

Consegui resolver, foi só seguir o que Fábio mencionou, criar a pasta resources em src/main/webapp e mover as pastas css e imagens.

Obrigado Fábio.

Olá, Estou com o mesmo problema. Não consegui carregar os css, sendo que no Source da página contem todos.

Pessoal, eu fiz o que o Fabio Baptista indicou e funcionou aqui também. Obrigado, Fabio.

Olá, não consegui fazer carregar os css na minha página. Como ficou resolvido?

solução!

Consegui resolver com a primeira sugestão do Fábio. Fazendo a AppWebConfiguration extender o WebMvcConfigurerAdapter, e dar um @Override no addResourceHandlers.

Segue o que o Fábio falou, na documentação do Spring MVC:

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-default-servlet-handler

A primeira solução funcionou perfeitamente pra mim, a segunda estava dando erro no override.

Consegui arrumar utilizando a primeira solução.

Deu certo como o Fábio explicou no inicio, geralmente alguns problemas se dão pela falta de atenção na hora da digitação, é assim mesmo, com calma dá certo ;)

O primeiro passo é extender a classe AppWebConfiguration da classe org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter

public class AppWebConfiguration extends WebMvcConfigurerAdapter { ... }

Sobrescrever o método public void addResourceHandlers(ResourceHandlerRegistry registry)

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

Verifique se a pasta resources está o local correto

.
├── java
│   └── br
│       └── com
│           └── casadocodigo
│               └── loja
│                   ├── conf
│                   │   ├── AppWebConfiguration.java
│                   │   ├── JPAConfiguration.java
│                   │   └── ServletSpringMVC.java
│                   ├── controller
│                   │   ├── HomeController.java
│                   │   └── ProdutosController.java
│                   ├── daos
│                   │   └── ProdutoDAO.java
│                   ├── infra
│                   │   └── FileSaver.java
│                   ├── models
│                   │   ├── Preco.java
│                   │   ├── Produto.java
│                   │   └── TipoPreco.java
│                   └── validation
│                       └── ProdutoValidation.java
└── webapp
    ├── arquivos-sumario
    ├── index.html
    ├── resources
    │   ├── css
    │   │   ├── book-collection.css
    │   │   ├── checkout.scss.css
    │   │   ├── checkout-style.css
    │   │   ├── cssbase-min.css
    │   │   ├── fontello.css
    │   │   ├── fontello-embedded.css
    │   │   ├── fontello-ie7.css
    │   │   ├── fonts.css
    │   │   ├── guia-do-programador-style.css
    │   │   ├── layout-colors.css
    │   │   ├── produtos.css
    │   │   ├── responsive-style.css
    │   │   └── style.css
    │   └── imagens
    │       └── cdc-logo.svg
    └── WEB-INF
        ├── messages.properties
        └── views
            ├── home.jsp
            └── produtos
                ├── detalhe.jsp
                ├── form.jsp
                ├── lista.jsp
                └── ok.jsp

Sobre os arquivos, durante o import ele cria uma pasta "casadocodigo" emcima do projeto "casadocodigo", tive que fazer um refactor e mover para o local correto.

@Ythalo Rossy Saldanha Lira,

Muito Obrigado. O CSS só passou a responder depois dos passos informados por você na configuração do AppWebConfiguration.

Abcs, Marcos