我有一个带有一点jpa的spring boot mvc,用于训练这个系统。 我通过thymeleaf链接连接了stylese:
<link rel="stylesheet" data-th-href="@{/bs/dist/css/bootstrap.css}">
<link rel="stylesheet" data-th-href="@{/htmlElements/myElements.css}">
这是我的项目结构
昨天一切都很好,但今天我根本看不到我的风格。经过一些研究,我得到了这些数据:
接下来,我启用了DEBUG重新启动了我的应用程序,并看到了
2018-06-03 12:52:42.957 DEBUG 10888 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet:DispatcherServlet,名称为&#39; dispatcherServlet&#39;处理[/bs/dist/css/bootstrap.css]的GET请求 2018-06-03 12:52:42.957 DEBUG 10888 --- [nio-8080-exec-2] s.w.s.m.m.a.RequestMappingHandlerMapping:查找路径/bs/dist/css/bootstrap.css的处理程序方法 2018-06-03 12:52:42.958 DEBUG 10888 --- [nio-8080-exec-3] o.s.b.w.s.f.OrderedRequestContextFilter:对线程的绑定请求上下文:org.apache.catalina.connector.RequestFacade@1298ec89 2018-06-03 12:52:42.958 DEBUG 10888 --- [nio-8080-exec-3] o.s.web.servlet.DispatcherServlet:DispatcherServlet,名称为&#39; dispatcherServlet&#39;处理[/htmlElements/myElements.css]的GET请求 2018-06-03 12:52:42.958 DEBUG 10888 --- [nio-8080-exec-3] s.w.s.m.m.a.RequestMappingHandlerMapping:查找路径/htmlElements/myElements.css的处理程序方法 2018-06-03 12:52:42.963 DEBUG 10888 --- [nio-8080-exec-2] .mmaExceptionHandlerExceptionResolver:解析来自handler [null]的异常:org.springframework.web.HttpRequestMethodNotSupportedException:Request method&#39; GET&#39;不支持 2018-06-03 12:52:42.963 DEBUG 10888 --- [nio-8080-exec-3] .mmaExceptionHandlerExceptionResolver:解析来自handler [null]的异常:org.springframework.web.HttpRequestMethodNotSupportedException:Request method&#39; GET&#39;不支持 2018-06-03 12:52:42.963 DEBUG 10888 --- [nio-8080-exec-2] .wsmaResponseStatusExceptionResolver:解析来自handler [null]的异常:org.springframework.web.HttpRequestMethodNotSupportedException:Request method&#39; GET&#39;不支持 2018-06-03 12:52:42.963 DEBUG 10888 --- [nio-8080-exec-3] .wsmaResponseStatusExceptionResolver:解析来自handler [null]的异常:org.springframework.web.HttpRequestMethodNotSupportedException:请求方法&#39; GET&#39;不支持 2018-06-03 12:52:42.964 DEBUG 10888 --- [nio-8080-exec-3] .wsmsDefaultHandlerExceptionResolver:解析来自handler [null]的异常:org.springframework.web.HttpRequestMethodNotSupportedException:请求方法&#39; GET&#39;不支持 2018-06-03 12:52:42.964 WARN 10888 --- [nio-8080-exec-3] o.s.web.servlet.PageNotFound:请求方法&#39; GET&#39;不支持 2018-06-03 12:52:42.964 DEBUG 10888 --- [nio-8080-exec-2] .wsmsDefaultHandlerExceptionResolver:解析来自handler [null]的异常:org.springframework.web.HttpRequestMethodNotSupportedException:Request method&#39; GET&#39;不支持 2018-06-03 12:52:42.964 WARN 10888 --- [nio-8080-exec-2] o.s.web.servlet.PageNotFound:请求方法&#39; GET&#39;不支持 2018-06-03 12:52:42.964 DEBUG 10888 --- [nio-8080-exec-3] osweb.servlet.DispatcherServlet:Null ModelAndView返回DispatcherServlet,名称为&#39; dispatcherServlet&#39;:假设HandlerAdapter已完成请求处理 2018-06-03 12:52:42.964 DEBUG 10888 --- [nio-8080-exec-2] osweb.servlet.DispatcherServlet:Null ModelAndView返回DispatcherServlet,名称为&#39; dispatcherServlet&#39;:假设HandlerAdapter已完成请求处理
所以,我无法理解这件事。我不碰任何弹簧靴autoconfig事情。 我想我应该用addResourceHandlers()方法重新配置WebMvcConfigurer.class,但我找不到正确的指南如何用spring boot实现它。
我可以像往常一样在#34; / templates&#34;中使用正常的@GetMapping来制作CSS,但这不是一个好主意吗?
更新|部分解决 我发现1个控制器@PostMapping没有值。删除它.Restart - 样式出现。然后我将这个@PostMapping()添加到@Controller类的方法中,并没有看到那些bug。所以,如果有人遇到同样的问题:重启ide - &gt;然后检查你的控制器。 thx 4帮助人
答案 0 :(得分:0)
如果您想访问CSS等资源文件,您应该在配置类中添加配置,以重定向此类请求以显示文件内容。
目前没有请求映射。尝试在使用@Configuration注释的Configuration.java文件中添加以下代码。
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/css/**").addResourceLocations("/WEB-INF/web/static/css/");
registry.addResourceHandler("/js/**").addResourceLocations("/WEB-INF/web/static/js/");
registry.addResourceHandler("/images/**").addResourceLocations("/WEB-INF/web/static/images/");
}
请根据您的路径在上面的代码中映射文件位置。