Problemas para carregar o CSS (Spring MVC)

Bom dia pessoa,

Fiz revi alguns topicos que apontava problema para carregar o css das jsp usando spring mvc , mas infelizmente eu nao consegui localizar a solucao.

Eu tenho uma jsp (index.jsp) porem quando eu faco o request da pagina o navegador nao consegue logalizar o direito do css.

Poderia me ajudar ?
Segue o link do projeto : https://github.com/Igoralves12/WebErp

Ninguem ? :frowning:

Então cara. Seu projeto ainda não está no padrão correto de pastas de um projeto maven. A estrutura de pastas deveriam está assim:

src/main/java Código java
src/main/resources Arquivos de configurações, como o persistence.xml, por exemplo
src/main/webapp Páginas web (html + js + css)

Seguindo essa estrutura, as coisas vão fluir melhor no seu projeto.

1 curtida

Boa tarde!

Geralmente a pasta raiz do projeto maven é a src/main/webapp
Se por acaso vc guarda seus arquivos css dentro de uma pasta padrão, coloque-a dentro dessa webapp e no jsp acesse direto pelo nome da pasta ex:

Diretório:
src/main/webapp/estilos/estilo.css

no seu jsp
<link rel="stylesheet" type="text/css" href="estilos/estilo.css">

1 curtida

Boa tarde @lemes,

@lemes Fiz a seguinte alteracao , criei uma folder chamada webapp e coloquei dentro o css.
Na JSP alterei o caminho para:
<link rel="stylesheet" type="text/css" href="webapp/css/util.css">

Mas ainda nao consegui por pra funcionar , commitei e dei push no projeto

Fala ai Mestre,

@Lucas_Camara O arquivo do persistence.xml eu consegui por pra funcionar seguindo as dicas que voce me deu no ultimo post.
Porem fiquei como uma duvida sobre os arquivos web (Ja peco perdao pela pergunta, sou novo na area) , mative a seguinte hierarquia de pasta

WebErp/WebContent/ webapp /

E incorreto manter desta forma ?

Sim. Num projeto maven, os arquivos frontend ficam na pasta: src/main/webapp. Essa pasta WebContent nem deveria existir num projeto maven.

1 curtida

Entendi o projeto se encontra nesse segmento de pasta pois se trata de um Projeto Web convertido para Maven,

Precisava configurar um projeto Maven , pelo fato de nao ser possivel adicionar um projeto Maven no TomCat resolvi criar um projeto Web e assim converter, acredito que a solucao sera utilizar o spring boot, pois no formato que o projeto esta hoje eu nao consigo criar o source folder com esses nome.

Bom dia @igoralves .
Parceiro, fiz um teste com o projeto que esta no seu github. Fiz algumas alterações manuais, como criar manualmente as pastas no mesmo padrão que são criadas em um projeto maven, e mesmo assim não acessou. Acredito que o certo seria migrar seu projeto para um novo projeto maven, e tentar resolver o problema de mandar ele pro tomCat.

1 curtida

@lemes Boa tarde campeão,

Eu praticamente desisti de manter ele como um projeto web, vou descartar este repositório , vou usar o https://start.spring.io/ pra gerar um projeto Spring boot com spring MVC. Pois desta forma consigo manter a estrutura de pasta do Maven como o @Lucas_Camara me sugeriu, vou tentar subir a pagina caso de certo ja subo pra um novo repositório e comento aqui qual foi a solução.

A estrutura de pastas e o mapeamento dos arquivos no spring mvc sao diferentes.
o css, assim como as pastas. eu coloco em main/resources/static.

dentro de static ficam os java scripts, css e paginas html.
nas paginas voce referencia assim:

  <link rel="stylesheet" type="text/css" th:href="@{/css/styles.css}"/>

e la no webconfig, voce precisa adicionar um metodo apontando onde estao os arquivos de configuracao

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

para o spring mvc, vc precisar adicionar esse metodo para “dizer” onde estao os arquivos.

outra coisa, com spring mvc o ideal é usar o thymeleaf, por isso que o href esta escrito daquela forma.

2 curtidas

@thimor mas existe a possibilidade de utilizar o CSS certo ?
Vou tentar alterar o projeto pra ver se consigo subir os arquivos de css/js etc…

sim inclusive voce coloca o bootstrap para estilizar sua pagina.

1 curtida

Estou novamente alterando o projeto antigo spring boot, nesse caso onde eu encaixo o metodo para informar onde esta os arquivos ?

Boa tarde Pessoal,

Problema resolvido , foi apenas necessario informar

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

Dentro do arquivo de configuracao do Servlet do spring

1 curtida

Voce estava usando arquivo de configuracoes XML. O que eu respondi para voce é essa mesma configuracao, porem via classe java.

eu geralmente crio um pacote de configuracao. e coloco as classes de configuração dentro.

1 curtida