CSS não carrega no HTML

22 respostas Resolvido
htmljava
D

Galera, quando ocorre uma exceção no doFilter(Filter) é executado o código abaixo:

RequestDispatcher requestDispatcher = request.getRequestDispatcher("maintenance.jsp");
requestDispatcher.forward(request, response);

O direcionamento para a página ocorre, porém o css referenciado no HTML não ocorre.

Abaixo está o código no HTML da referência ao css:

<link rel="stylesheet" href="resources/css/maintenance.css">

Já tentei com mas não deu certo:

<link rel="stylesheet" href="../resources/css/maintenance.css">

O HTML está na pasta WebContent, já o css esté em WebContent/resources/css

Tem algo errado?

22 Respostas

L

Vc pode mandar a estrutura de pastas do seu projeto? (Para ver onde está a página JSP e onde está o arquivo CSS)

D

Olá Lucas. Segue.

L

Tente assim:

<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/maintenance.css">
D

Não deu certo.
Em tempo de execução ficou dessa forma

<link rel="stylesheet" href="[/painelpreparacaocarga/resources/css/maintenance.css](http://10.74.65.30:8080/painelpreparacaocarga/resources/css/maintenance.css)">

Quando clico no caminho, dá o erro 404.

L

Qual servidor vc está rodando esse projeto?

Você está gerando algum war?

Está rodando direto da sua IDE?

D

Executando pelo Tomcat dentro do Eclipse.
Esse mesmo problema ocorre quando tento adicionar o favicon no HTML.

L

Tem que ver se esse arquivo CSS está sendo adicionado no war durante a execução.

Tente achar essa pasta:

{{caminho-do-seu-workspace}}\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps

Os arquivos do seu projeto que serão executados no servidor, devem está nela. Se sim, veja se o arquivo CSS foi adicionado corretamente.

D

Essa pasta está vazia.

Quando clico no caminho do CSS no HTML pelo Eclipse, o CSS é aberto. Mas em tempo de execução não está encontrando. Tenho outros HTML nesse mesmo projeto que o CSS é carregado certinho.

L

veja na pasta wtpwebapps

D

Na wtpwebapps aparece.

L

Muito estranho viu. Era para ter funcionado. Será que não é cache do navegador não?

D

Pois é estranho mesmo. Não creio que seja problema com cache porque executei em 3 navegadores diferentes e também executando pelo Eclipse não dá certo.

L

Eu tenho um projeto aqui com a mesma estrutura do seu. E a minha JSP (query.jsp), localizado na raiz de webcontent, aponta para um css (dentro de uma pasta css) e funciona de boa:

Faço apenas isso no arquivo query.jsp:

<link href="css/bootstrap.min.css" rel="stylesheet">

image

L

Como essa sua página JSP é aberta? Vc acessa ela diretamente, ou tem algum mecanismo intermediário, como uma servlet, por exemplo?

D

O HTML é chamado dentro de uma classe que extende de Filter. Daí no doFilter() tenho o código:

if (connection == null) {
		ConnectionDataBase.disconnect();
		RequestDispatcher requestDispatcher = request.getRequestDispatcher("maintenance.jsp");
		requestDispatcher.forward(request, response);
		return;
	}
L

Dentro desse filtro, pegue a URL que está vindo no request e poste ela aqui.

request.getRequestURL();
D

http://10.74.65.30:8080/painelpreparacaocarga/resources/css/maintenance.css

L

Qual a ideia desse filtro? Se não tiver conexão ativa, ele direciona para essa tela JSP?

Se for isso, e se o filtro estiver valendo para todo tipo de arquivo, pode ser o problema, pois ao tentar recuperar o arquivo css, o filtro irá barrar.

D

A ideia é essa mesmo. Toda vez que vier uma requisição então passa pelo filtro e cai na página de que o banco de dados está em manutenção, pois é uma aplicação que fica ativa sempre.

Qual seria sua sugestão?

D

Não sei se é a melhor forma ou é “gambiarra”, mas no início do métido doFilter coloquei o código abaixo e funcionou:

HttpServletRequest req = (HttpServletRequest) request;
	
    String path= req.getRequestURI();
    
    if (path.endsWith(".css") || path.endsWith(".svg")){
      chain.doFilter(request,response);
      return;
    }
L
Solucao aceita

Essa é uma forma de fazer. Outra seria configurar no pattern do filtro. Se for no web.xml, seria algo assim:

Para considerar apenas arquivos .jsp

<filter-mapping>
	<filter-name>SeuFiltro</filter-name>
	<url-pattern>*.jsp</url-pattern>
</filter-mapping>
D

Valeu!

Criado 16 de março de 2020
Ultima resposta 18 de mar. de 2020
Respostas 22
Participantes 2