我得到了一个Spring MVC应用程序,该应用程序当前在src/main/java/resources/assets目录中放置了一堆CSS和JS文件。
src/main/java/resources/assets
我通读了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(放置在资源/模板中):
<head> <!-- local Stylesheet --> <link href="css/style.css" rel="stylesheet" /> <!-- local Javascript files --> <script src="js/general.js"></script> <script src="js/xmlhttp.js"></script> <!-- local Javascript libraries --> <script src="js/lib/filter.js"></script> <script src="js/lib/jquery.fs.zoomer.js"></script> <script src="js/lib/jquery.validate.js"></script> </head>
该html文件已通过我的控制器类正确加载,但是当尝试点击例如我的style.css文件(http://localhost:8080/css/style.css)时,我得到了一个404,如上所述。
我似乎找不到更多资源可以为Spring 4提供有关此主题的更多信息。我会错过一些配置文件吗?还是资源处理程序注册不适合我的结构?期待你的回复。
你说样式表和JavaScript文件在“ / assets”下。我假设你有目录“ / assets / css”和“ / assets / js”。然后,给出以下资源处理程序定义:
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/assets/**") .addResourceLocations("classpath:/assets/"); }
你可以像这样在HTML中加载这些资源:
<link href="/assets/css/style.css" rel="stylesheet" /> <script src="/assets/js/general.js"></script>