Arquivo CSS em um Spring WAR retorna um erro 404
Eu tenho um aplicativo Java EE que estou construindo com Spring e Maven. Tem a estrutura usual do projeto. Aqui está um pouco da hierarquia.
MyApplication
src
main
webapp
WEB-INF
layout
header.jsp
styles
main.css
Eu quero incluir esse arquivo CSS no meu JSP. Eu tenho a seguinte tag no lugar.
<c:url var="styleSheetUrl" value="/styles/main.css" />
<link rel="stylesheet" href="${styleSheetUrl}">
Quando eu implantar o aplicativo, a página CSS não está sendo localizada. Quando vejo a fonte da página, a href é/MyApplication/styles/main.css
. Olhando para dentro da GUERRA, há um/styles/main.css
. No entanto, recebo um 404 quando tento acessar o arquivo CSS diretamente no navegador.
Descobri que o motivo do problema era o mapeamento do Servlet do Dispatcher. O mapeamento é o seguinte.
<servlet-mapping>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Eu imagino que o Dispatcher Servlet não saiba como lidar com o pedido de CSS. Qual é a melhor maneira de lidar com esse problema? Eu prefiro não ter que alterar todos os meus mapeamentos de solicitações.