Когда я загружаю свою страницу JSP home.jsp, я включаю таблицу стилей signIn.css. Но что-то происходит, когда мне не удается загрузить ресурс: сервер ответил со статусом 404 (не найдено) для моей таблицы стилей. Я думаю, что мой сервлет весеннего диспетчера ищет URI /customerPortal/signIn.css, когда мой файл CSS хранится в /customerPortal/src/main/webapp/WEB-INF/signIn.css (без использования Spring у меня нет проблем) , Я думаю, что-то с getServletMappings, где он отрезает расположение файла.
Моя страница CSS находится в том же месте, что и моя страница home.jsp. Я также настроил свой класс SpringMvcInitializer и класс MvcConfiguration, поскольку я использую загрузку Spring. У меня также есть домашний контроллер. Я не использую spring-dispatcher-servlet.xml.
//MvcConfiguration.java
package Configuration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import ShoppingCart.Cart;
@Configuration
@ComponentScan(basePackages="Controllers/")
@EnableWebMvc
public class MvcConfiguration extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver getViewResolver()
{
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/");
resolver.setSuffix(".jsp");
return resolver;
}
@Bean
public Cart getCart(){
return new Cart();
}
}
//SpringMvcInitializer.java
package Configuration;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class SpringMvcInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] {MvcConfiguration.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
// TODO Auto-generated method stub
return null;
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
// home.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%@include file="header.jsp" %>
<link rel="stylesheet" href="/src/main/webapp/WEB-INF/signIn.css">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
</body
</html>
Мои страницы jsp и css хранятся в
/customerPortal/src/main/webapp/WEB-INF/home.jsp
/customerPortal/src/main/webapp/WEB-INF/signIn.css
Но на моей консоли затмения я получаю следующее:
- DispatcherServlet с именем 'dispatcher', обрабатывающим GET-запрос для [/customerPortal/signIn.css]
- Не найден метод обработчика для [/signIn.css]
- Не найдено сопоставление для HTTP-запроса с URI [/customerPortal/signIn.css] в DispatcherServlet с именем «dispatcher»
И в браузере Chrome я получаю:
GET http://localhost:8035/customerPortal/signIn.css net :: ERR_ABORTED 404 (не найдено)
Почему он ищет URI /customerPortal/signIn.css, когда мой файл CSS хранится в /customerPortal/src/main/webapp/WEB-INF/signIn.css?