Spring 4加载静态资源

我有一个spring MVC应用程序,其中包含当前放在src/main/java/resources/assets目录中的一堆css和js文件。

我阅读了Spring Docs和一些关于如何使用ResourceHandlerRegistry类为我的模板加载这些文件的教程。 我特别认为本教程中的代码片段非常适合我的项目结构。

但是我的资源文件总是得到404。

这是我目前正在运行的Application / Configuration类:

 @Configuration @EnableAutoConfiguration @ImportResource("/applicationContext.xml") // only used for jpa/hibernate @EnableWebMvc @ComponentScan(basePackages = "at.sustain.docutools.viewer.presentation") public class Application extends WebMvcConfigurerAdapter { public static void main(String args[]) { SpringApplication.run(Application.class); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/assets/**") .addResourceLocations("classpath:/assets/"); registry.addResourceHandler("/css/**") .addResourceLocations("/css/"); registry.addResourceHandler("/js/**") .addResourceLocations("/js/"); } } 

这里是我的HTML文件中使用的HEADer(放在资源/模板中):

            

html文件是通过我的控制器类正确加载的,但是当我尝试点击例如我的style.css文件( http://localhost:8080/css/style.css )时,我得到了404,如上所述。

我似乎无法找到更多可以为Spring提供有关此主题的更多信息的资源。我是否会错过一些配置文件? 或者不是适合我的结构的资源处理程序注册? 我期待着你的回复。

您说您的样式表和JavaScript文件位于“/ assets”下。 我假设你有目录“/ assets / css”和“/ assets / js”。 然后,给定以下资源处理程序定义:

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

您可以在HTML中加载这些资源,如下所示: