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(放置在资源/模板中):
<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”。然后,给出以下资源处理程序定义:
@Overridepublic 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>
以上是 Spring 4加载静态资源 的全部内容, 来源链接: utcz.com/qa/412308.html